@@ -23,6 +23,8 @@ @interface ICGVideoTrimmerView() <UIScrollViewDelegate>
2323@property (strong , nonatomic ) ICGThumbView *rightThumbView;
2424
2525@property (strong , nonatomic ) UIView *trackerView;
26+ @property (strong , nonatomic ) UIView *tracker;
27+ @property (strong , nonatomic ) UIView *trackerHandle;
2628@property (strong , nonatomic ) UIView *topBorder;
2729@property (strong , nonatomic ) UIView *bottomBorder;
2830@property (strong , nonatomic ) UIPanGestureRecognizer *panGestureRecognizer;
@@ -31,6 +33,7 @@ @interface ICGVideoTrimmerView() <UIScrollViewDelegate>
3133@property (nonatomic ) CGFloat endTime;
3234
3335@property (nonatomic ) CGFloat widthPerSecond;
36+ @property (nonatomic ) int trackerHandleHeight;
3437
3538@property (nonatomic ) CGPoint leftStartPoint;
3639@property (nonatomic ) CGPoint rightStartPoint;
@@ -91,6 +94,16 @@ - (UIColor *)trackerColor
9194 return _trackerColor ?: [UIColor whiteColor ];
9295}
9396
97+ - (UIColor *) trackerHandleColor
98+ {
99+ return _trackerHandleColor ?: [UIColor whiteColor ];
100+ }
101+
102+ - (Boolean) showTrackerHandle
103+ {
104+ return _showTrackerHandle ?: NO ;
105+ }
106+
94107- (CGFloat)borderWidth
95108{
96109 return _borderWidth ?: 1 ;
@@ -103,13 +116,15 @@ - (CGFloat)thumbWidth
103116
104117- (void )resetSubviews
105118{
106- self.clipsToBounds = YES ;
119+ // self.clipsToBounds = YES;
120+
121+ self.trackerHandleHeight = 20 ;
107122
108- [self setBackgroundColor: [UIColor blackColor ]];
123+ [self setBackgroundColor: [UIColor clearColor ]];
109124
110125 [self .subviews makeObjectsPerformSelector: @selector (removeFromSuperview )];
111126
112- self.scrollView = [[UIScrollView alloc ] initWithFrame: CGRectMake (0 , 0 , CGRectGetWidth (self .frame), CGRectGetHeight (self .frame))];
127+ self.scrollView = [[UIScrollView alloc ] initWithFrame: CGRectMake (0 , 0 , CGRectGetWidth (self .frame), CGRectGetHeight (self .frame) - self .trackerHandleHeight )];
113128 [self .scrollView setBounces: NO ];
114129 [self .scrollView setScrollEnabled: NO ];
115130 [self addSubview: self .scrollView];
@@ -122,7 +137,7 @@ - (void)resetSubviews
122137
123138 CGFloat ratio = self.showsRulerView ? 0.7 : 1.0 ;
124139 self.frameView = [[UIView alloc ] initWithFrame: CGRectMake (self .thumbWidth, 0 , CGRectGetWidth (self .contentView.frame)-2 *self .thumbWidth, CGRectGetHeight (self .contentView.frame)*ratio)];
125- [self .frameView.layer setMasksToBounds: YES ];
140+ // [self.frameView.layer setMasksToBounds:YES];
126141 [self .contentView addSubview: self .frameView];
127142
128143 [self addFrames ];
@@ -154,19 +169,38 @@ - (void)resetSubviews
154169 self.leftThumbView = [[ICGThumbView alloc ] initWithFrame: leftThumbFrame color: self .themeColor right: NO ];
155170 }
156171
157- self.trackerView = [[UIView alloc ] initWithFrame: CGRectMake (self .thumbWidth, -5 , 3 , CGRectGetHeight (self .frameView.frame) + 20 )];
158- self.trackerView .backgroundColor = self.trackerColor ;
159- self.trackerView .layer .masksToBounds = true ;
160- self.trackerView .layer .cornerRadius = 2 ;
172+ self.trackerView = [[UIView alloc ] initWithFrame: CGRectMake (self .thumbWidth - self .trackerHandleHeight / 2 , 0 , 20 , CGRectGetHeight (self .frameView.frame) + self .trackerHandleHeight)];
161173
174+ self.tracker = [[UIView alloc ] initWithFrame: CGRectMake (self .thumbWidth, 0 , 3 , CGRectGetHeight (self .frameView.frame))];
175+ self.trackerHandle = [[UIView alloc ] initWithFrame: CGRectMake (1 , CGRectGetHeight (self .frameView.frame), self .trackerHandleHeight, self .trackerHandleHeight)];
176+
177+ [self .trackerHandle.layer setMasksToBounds: YES ];
178+ [self .contentView setUserInteractionEnabled: YES ];
179+
180+ // self.trackerHandle.clipsToBounds = YES;
181+ [self .trackerHandle.layer setCornerRadius: 10 ];
182+ self.tracker .backgroundColor = self.trackerColor ;
183+ self.trackerHandle .backgroundColor = self.trackerHandleColor ;
184+ // self.trackerView.layer.masksToBounds = true;
185+ self.tracker .layer .cornerRadius = 2 ;
186+
187+
188+ [self .trackerView addSubview: self .tracker];
189+ if (self.showTrackerHandle ) {
190+ [self .trackerView addSubview: self .trackerHandle];
191+ }
192+ [self .tracker setUserInteractionEnabled: YES ];
162193 [self .trackerView setUserInteractionEnabled: YES ];
194+ [self .trackerHandle setUserInteractionEnabled: YES ];
163195 [self addSubview: self .trackerView];
164196
165197 self.panGestureRecognizer = [[UIPanGestureRecognizer alloc ] initWithTarget: self action: @selector (handleTrackerPan: )];
166198
167- [self .panGestureRecognizer locationInView: self .trackerView];
199+ [self .panGestureRecognizer locationInView: self .trackerView];
168200
169201 [self .trackerView addGestureRecognizer: self .panGestureRecognizer];
202+ // [self.trackerHandle addGestureRecognizer:self.panGestureRecognizer];
203+
170204
171205 [self .leftThumbView.layer setMasksToBounds: YES ];
172206 [self .leftOverlayView addSubview: self .leftThumbView];
@@ -203,14 +237,15 @@ - (void)updateBorderFrames
203237 [self .bottomBorder setFrame: CGRectMake (CGRectGetMaxX (self .leftOverlayView.frame), CGRectGetHeight (self .frameView.frame)-height, CGRectGetMinX (self .rightOverlayView.frame)-CGRectGetMaxX (self .leftOverlayView.frame), height)];
204238}
205239
206- - (void )handleTrackerPan : (UISwipeGestureRecognizer *) recognizer {
240+ - (void )handleTrackerPan : (UIGestureRecognizer *) recognizer {
241+ NSLog (@" Test" );
207242 CGPoint point = [self .panGestureRecognizer locationInView: self .trackerView];
208243
209244 CGRect trackerFrame = self.trackerView .frame ;
210- trackerFrame.origin .x += point.x ;
245+ trackerFrame.origin .x += point.x - self. trackerHandleHeight / 2 ;
211246 self.trackerView .frame = trackerFrame;
212247
213- CGFloat time = (trackerFrame.origin .x - self.thumbWidth + self.scrollView .contentOffset .x ) / self.widthPerSecond ;
248+ CGFloat time = (trackerFrame.origin .x - self.thumbWidth + self.scrollView .contentOffset .x + self. trackerHandleHeight ) / self.widthPerSecond ;
214249 [self .delegate trimmerView: self currentPosition: time ];
215250
216251}
@@ -294,7 +329,7 @@ - (void)seekToTime:(CGFloat) time
294329 CGFloat posToMove = time * self.widthPerSecond + self.thumbWidth - self.scrollView .contentOffset .x ;
295330
296331 CGRect trackerFrame = self.trackerView .frame ;
297- trackerFrame.origin .x = posToMove;
332+ trackerFrame.origin .x = posToMove - self. trackerHandleHeight / 2 ;
298333 self.trackerView .frame = trackerFrame;
299334
300335}
0 commit comments