如何判断屏幕是否仍然被触摸?

时间:2012-07-14 16:51:37

标签: objective-c ios cocoa-touch uiview

我有UIView触及事件处理程序perfomsSelector withDelay ....但是当用户触摸屏幕时,touchEnded事件当然会触发。我这样做是因为我希望在用户在这个UIView中放置和离开手指几秒后开始操作。

我希望当用户在选择器方法开始之前(延迟通过之前)将手指从屏幕上移开时,首先不要运行选择器,然后再运行touchEnded方法。

我可以开始添加标记,但这对我来说效率不高。

还有另一种方法可以做到这一点。

谢谢。

3 个答案:

答案 0 :(得分:1)

最好的解决方案可能是使用UILongPressGestureRecognizer而不是自己跟踪触摸。

答案 1 :(得分:1)

@rob answer是一个更好的解决方案但是如果你不能出于任何原因使用它。试试这个:

在触摸结束时调用cancelPreviousPerformRequestsWithTarget。这将取消您之前的通话。

答案 2 :(得分:1)

如果您不想使用手势识别器,则需要BOOL(longpressed)和cancelPreviousPerformRequestsWithTarget:self调用。如果设置了'longpressed',你会检查touchesEnded。