Configuring the Gesture Recognizer
@property(nonatomic) NSUInteger maximumNumberOfTouches//The maximum number of fingers that can be touching the view for this gesture to be recognized. @property(nonatomic) NSUInteger minimumNumberOfTouches//The minimum number of fingers that can be touching the view for this gesture to be recognized.
Tracking the Location and Velocity of the Gesture
- (CGPoint)translationInView:(UIView *)view//The translation of the pan gesture in the coordinate system of the specified view.平移的距离。设置后速度为0. - (void)setTranslation:(CGPoint)translation inView:(UIView *)view//设置平移的距离 - (CGPoint)velocityInView:(UIView *)view//速度。 which is expressed in points per second.
例子
方法1:
CGFloat translationX = [pan translationInView:self.view].x; pan.view.center = CGPointMake(pan.view.center.x+translationX, pan.view.center.y); [pan setTranslation:CGPointZero inView:self.view];
方法2:
CGPoint translation = [recognizer translationInView:recognizer.view]; case UIGestureRecognizerStateBegan: { [recognizer setTranslation:CGPointMake(recognizer.view.frame.origin.x, 0) inView:recognizer.view]; break; } case UIGestureRecognizerStateChanged: { [recognizer.view setTransform:CGAffineTransformMakeTranslation(MAX(0,translation.x), 0)]; [self statusBarView].transform = recognizer.view.transform; break; }
目前看来,translationInView的参数是attach的view还是其父view关系不大。每次的translation都是与上次的叠加。因此如果每次设置为0,则累加坐标即可。否则要用setTransform。
时间: 2024-11-05 19:16:10