0

我有 UIView touched event handler that perfomsSelector withDelay....但是当用户不触摸屏幕时,touchEnded 事件当然应该触发。我这样做是因为我希望在用户在此 UIView 中放置并离开手指几秒钟后开始操作。

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

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

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

谢谢你。

4

3 回答 3

1

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

于 2012-07-14T16:57:55.233 回答
1

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

在接触结束呼叫 cancelPreviousPerformRequestsWithTarget。这将取消您之前的通话。

于 2012-07-14T17:05:17.520 回答
1

如果您不想使用手势识别器,则需要一个 BOOL(长按)和对 cancelPreviousPerformRequestsWithTarget:self 的调用。如果设置了“longpressed”,您将签入 touchesEnded。

于 2012-07-14T17:08:02.183 回答