UIButton 上的 UILongPressGestureRecognizer
UILongPressGestureRecognizer on UIButton
我在 UIButton 上有一个 UILongPressGestureRecognizer。我的手势识别器的最短持续时间为 0.5 秒。当我按住它时,我希望它每按下 0.5 秒就会触发一次。我该怎么做?
你不能用手势来做。您需要从 UIControl
实施底层触摸管理方法并跟踪触摸的开始和结束(并使用您自己的计时器)。手势触发后,需要结束并通过新的触摸重新开始。
我想应该可以创建你自己的手势,然后你可以访问触摸,但我不确定系统将如何对你重复的状态变化做出反应...
对于每个触摸事件,您将在相应的 view/viewcontroller 上获得以下回调。
touchesBegan:withEvent:,
touchesMoved:withEvent:,
touchesEnded:withEvent:, and
touchesCancelled:withEvent:
实现这个的简单方法是,在 touchesBegan:withEvent 回调方法中触发一个计时器,并在 touchesEnded:withEvent 和 touchesCancelled:withEvent 方法中使计时器无效。
您也可以为此使用一个简单的 UIView,如果您正在寻找一个简单的解决方案,则无需使用新的 UIControl 或 GestureRecognizer。
我在 UIButton 上有一个 UILongPressGestureRecognizer。我的手势识别器的最短持续时间为 0.5 秒。当我按住它时,我希望它每按下 0.5 秒就会触发一次。我该怎么做?
你不能用手势来做。您需要从 UIControl
实施底层触摸管理方法并跟踪触摸的开始和结束(并使用您自己的计时器)。手势触发后,需要结束并通过新的触摸重新开始。
我想应该可以创建你自己的手势,然后你可以访问触摸,但我不确定系统将如何对你重复的状态变化做出反应...
对于每个触摸事件,您将在相应的 view/viewcontroller 上获得以下回调。
touchesBegan:withEvent:,
touchesMoved:withEvent:,
touchesEnded:withEvent:, and
touchesCancelled:withEvent:
实现这个的简单方法是,在 touchesBegan:withEvent 回调方法中触发一个计时器,并在 touchesEnded:withEvent 和 touchesCancelled:withEvent 方法中使计时器无效。
您也可以为此使用一个简单的 UIView,如果您正在寻找一个简单的解决方案,则无需使用新的 UIControl 或 GestureRecognizer。