我有一个 UILongPressGestureREcognizer
,最小按下时间为 0 秒。在 UIGestureRecognizerStateStart 上,我更改了 UIView。在 UIGestureRecognizerStateEnded
上,我运行代码来执行媒体想要执行的操作。
-(IBAction)longPressDetected:(UILongPressGestureRecognizer *)recognizer {
static NSTimer *timer = nil;
if (recognizer.state == UIGestureRecognizerStateBegan) {
// alter look of UIView
}
else if (recognizer.state == UIGestureRecognizerStateEnded) {
// do something
// change look back to original state
}
}
我遇到了一个问题,如果触摸在 UIView
上开始并且触摸被拖到 UIView
之外并被解除,则 UIGestureRecognizerStateEnded
仍然会触发。
我需要能够处理 UIView 内部的触摸,用户将其拖动到 UIView 外部并取消它。
我知道 UIButton
可以做到这一点,但它并不能满足我的所有需求。
如果触摸被拖动到 UIView
之外,如何取消触摸?
最佳答案
添加触摸位置检查。这个方法很有用。
- (CGPoint)locationInView:(UIView *)view
关于ios - UIGestureRecognizer 通过触摸移出 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053327/