我已经使用我首先在 TouchesBegan 重载中设置的 NSTimer 实现了一个长按处理程序。
但是,我真正想要的是在按住触摸的同时连续快速执行一个动作。因此,在计时器到期时,我调用一个处理程序来完成这项工作,然后它设置另一个计时器并继续循环,直到 TouchesEnded 进入并取消它,或者满足另一个终止条件。
这工作正常,直到我的处理程序代码触发动画同时消失。现在我们有了动画事件和计时器事件,我们还需要处理 TouchesEnded。
我发现,如果触发了动画,并且我将计时器设置为小于 0.025 秒,我的 TouchesEnded 事件直到计时器周期停止(另一个终止条件)才会发生。设置一个较慢的计时器,或者不触发动画,让它工作(TouchedEnded 立即出现),但不是我想要的。
显然,这一切都在设备上(发布版本 - 没有 NSLogs) - 在 sim 中一切正常
有没有办法设置这些事件的相对优先级 - 或者我可能在这里遗漏了其他明显的东西?
[更新]
在这种情况下,我通过在没有视觉反馈的情况下完成连续部分来解决这个问题(从这个用户的角度来看是即时的)。我认为目前还可以。我仍然希望听到更多关于此的想法(Jeffrey 的想法很好),但我现在不会坐立不安。