gpt4 book ai didi

ios - 如何比较iOS上的手势类型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:26:54 24 4
gpt4 key购买 nike

我在一个 View 上有两种不同类型的三种不同手势。

第一个是 UITapGestureRecognizer,另外两个是 UILongPressGestureRecognizer

长按手势识别器有不同的minimumPressDuration,一个是0.15,另一个是0.50,所以我实现了以下功能所有手势都被识别:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer{
return true;
}

该函数确实允许识别所有手势,但问题是每当 UILongPressGestureRecognizer 被识别时,UITapGestureRecognizer 也会被识别。

所以,我想知道如何比较

中的 gestureRecognizer 类型
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer

或者如何在检测到 UILongPressGestureRecognizer 时停止 UITapGestureRecognizer,因为每当触发 UILongPressGestureRecognizer 时都会触发 UITapGestureRecognizer

最佳答案

shouldRecognizeSimultaneouslyWithGestureRecognizer: 中的所有情况都不会返回YES:如果您不想同时识别手势,您实际上应该返回NO:

- (BOOL) gestureRecognizer: (UIGestureRecognize *) gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *) otherGestureRecognizer {
return NO;
}

但要完成您显然想要完成的任务,我建议您改用另一种 UIGestureRecognizerDelegate 方法——gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:——这样你可以指定先识别哪个手势。在这种情况下,由于您想在检测到 UILongPressGestureRecognizer 时停止 UITapGestureRecognizer,请尝试以下操作:

- (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;
}
}

关于ios - 如何比较iOS上的手势类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27475250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com