我有一个 View ,我将 UIPanGestureRecogniser 应用于该 View :
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAnim:)];
[sliderView addGestureRecognizer:panGesture];
[panGesture release];
我可以很好地检测和处理手势。但是,我希望在手势结束后启动另一个方法。
我知道有两种方法可以进行这种检测。 touchesEnded
和 touchesCancelled
但是,我发现 touchesCancelled
一旦触摸变成手势即被调用,即我移动手指足以保证手势调用和 touchesEnded
很少(如果有的话)被调用。
我希望能够向左/向右平移,然后在手势结束时启动另一个函数调用。我该怎么做?
最佳答案
可以通过使用 UIGestureRecognizerStateEnded
检查其状态来检测平移手势结束事件。
检查下面的代码。
-(void) panAnim:(UIPanGestureRecognizer*) gestureRecognizer
{
if(gestureRecognizer.state == UIGestureRecognizerStateEnded)
{
//All fingers are lifted.
}
}
来自 Apple 文档
A panning gesture is continuous. It begins (UIGestureRecognizerStateBegan) when the minimum number of fingers allowed (minimumNumberOfTouches) has moved enough to be considered a pan. It changes (UIGestureRecognizerStateChanged) when a finger moves while at least the minimum number of fingers are pressed down. It ends (UIGestureRecognizerStateEnded) when all fingers are lifted.
Read more about UIPanGestureRecognizer
https://stackoverflow.com/questions/6467638/
相关文章:
objective-c - Interface Builder 中的 IBOutletCollect
ios - MKMapView MKPointAnnotation 点击事件
ios - 如何从 CGPoint 和 CGSize 创建 CGRect?
ios - 字符串的静态 NSArray - 如何/在哪里初始化 View Controller
objective-c - iOS:如何将 UIViewAnimationCurve 转换为 UIV
objective-c - 分组的 UITableView 在底部有 20px 的额外填充