我有UIView触及事件处理程序perfomsSelector withDelay ....但是当用户触摸屏幕时,touchEnded事件当然会触发。我这样做是因为我希望在用户在这个UIView中放置和离开手指几秒后开始操作。
我希望当用户在选择器方法开始之前(延迟通过之前)将手指从屏幕上移开时,首先不要运行选择器,然后再运行touchEnded方法。
我可以开始添加标记,但这对我来说效率不高。
还有另一种方法可以做到这一点。
谢谢。
答案 0 :(得分:1)
最好的解决方案可能是使用UILongPressGestureRecognizer而不是自己跟踪触摸。
答案 1 :(得分:1)
@rob answer是一个更好的解决方案但是如果你不能出于任何原因使用它。试试这个:
在触摸结束时调用cancelPreviousPerformRequestsWithTarget。这将取消您之前的通话。
答案 2 :(得分:1)
如果您不想使用手势识别器,则需要BOOL(longpressed)和cancelPreviousPerformRequestsWithTarget:self调用。如果设置了'longpressed',你会检查touchesEnded。