0

我在 UIButton 上有一个 UILongPressGestureRecognizer。我的手势识别器的最短持续时间为 0.5 秒。当我按住它时,我希望它每按 0.5 秒触发一次。我该怎么做?

4

2 回答 2

1

你不能用手势来做到这一点。您需要实现底层的触摸管理方法UIControl并跟踪触摸的开始和结束(并使用您自己的计时器)。一旦手势触发,它需要结束并通过新的触摸重新开始。

我想应该可以创建你自己的手势,然后你可以访问触摸,虽然我不确定系统会如何对你重复的状态变化做出反应......

于 2015-05-05T16:07:13.500 回答
1

对于每个触摸事件,您将在相应的视图/视图控制器上获得以下回调。

touchesBegan:withEvent:, 
touchesMoved:withEvent:, 
touchesEnded:withEvent:, and 
touchesCancelled:withEvent:

实现这一点的简单方法是,在 touchesBegan:withEvent 回调方法中触发一个计时器,并使 touchesEnded:withEvent 和 touchesCancelled:withEvent 方法中的计时器无效。

您也可以为此使用简单的 UIView,如果您正在寻找简单的解决方案,则无需使用新的 UIControl 或 GestureRecognizer。

于 2015-05-05T20:34:26.000 回答