gpt4 book ai didi

ios - 如何以编程方式结束/重置 UIGestureRecognizer?

转载 作者:技术小花猫 更新时间:2023-10-29 11:18:59 26 4
gpt4 key购买 nike

假设我目前正在跟踪拖动手势。在我的事件处理程序中,我使用一个阈值来确定拖动何时导致 Action 。当超过阈值时,我想指示拖动手势已完成。

我在文档中唯一能找到的就是这行 here :

If you change this property to NO while a gesture recognizer is currently recognizing a gesture, the gesture recognizer transitions to a cancelled state.

所以:

if (translation.y > 100) {
// do action
[self doAction];

//end recognizer
sender.enabled = NO;
sender.enabled = YES;
}

这可行,但看起来可能有更简洁的方法。

有谁知道以编程方式指示手势已结束的另一种方法?我希望有类似 -end: 的方法,它会生成状态为 UIGestureRecognizerStateEnded 的最终事件。

最佳答案

您是否定义了自定义 UIGestureRecognizer?如果您识别的手势与 Apple 定义的标准手势不同,因为它具有不同的阈值或与常规 UIPanGestureRecognizer 不同,那么创建您自己的 UIGestureRecognizer 可能是有意义的。 ( see subclassing notes )

如果你有 UIGestureRecognizer 的子类,你可以像这样简单地设置状态:

  self.state = UIGestureRecognizerStateEnded;

您可能想在 touchesMoved:withEvent: 方法中执行此操作。另请注意:

“UIGestureRecognizer 的子类必须导入 UIGestureRecognizerSubclass.h。此头文件包含使其可读写的状态重新声明。”

另一方面,如果您只实现一个 UIGestureRecognizerDelegate,则状态是只读的,无法直接设置它。在那种情况下,您禁用/启用的方法可能是您能做的最好的。

关于ios - 如何以编程方式结束/重置 UIGestureRecognizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278798/

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