mad*_*per 4 objective-c uigesturerecognizer ios uitapgesturerecognizer ios8
我在一个视图中有两种不同类型的三种不同手势。
第一个是 a UITapGestureRecognizer
,另外两个是UILongPressGestureRecognizer
。
长按手势识别器有不同的minimumPressDuration
,一个是0.15
,另一个是0.50
,所以我实现了以下功能,以便识别所有手势:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer{
return true;
}
Run Code Online (Sandbox Code Playgroud)
该功能确实允许识别所有手势,但问题是每当UILongPressGestureRecognizer
识别出 a 时UITapGestureRecognizer
,也识别出 a。
所以,我想知道如何比较中的gestureRecognizer的类型
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer
Run Code Online (Sandbox Code Playgroud)
或如何停止UITapGestureRecognizer
的时候UILongPressGestureRecognizer
检测,因为UITapGestureRecognizer
每当触发UILongPressGestureRecognizer
被触发。
与其返回YES
中的所有情况shouldRecognizeSimultaneouslyWithGestureRecognizer:
,如果您不想同时识别手势,您实际上应该返回NO
:
- (BOOL) gestureRecognizer: (UIGestureRecognize *) gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer {
return NO;
}
Run Code Online (Sandbox Code Playgroud)
但是为了完成您显然想要完成的任务,我建议您改用不同的UIGestureRecognizerDelegate
方法 -- gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:
-- 这样您就可以指定哪个手势在另一个手势之前被识别。在这种情况下,由于您想UITapGestureRecognizer
在UILongPressGestureRecognizer
检测到a 时停止,请尝试以下操作:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
// If the gesture recognizer is a UITapGestureRecongizer, but the other
// gesture detected is a UILongPressGestureRecognizer, require the
// UITapGestureRecognizer to fail.
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] &&
[otherGestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
return YES;
} else {
return NO;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2300 次 |
最近记录: |