如果视图以编程方式退出屏幕,则不会发生最后一次触摸事件

时间:2012-04-26 00:52:19

标签: ios cocoa-touch uiview touch

我有一种情况,当触摸开始时我将效果应用于UIView,并在触摸结束时反转该效果。所以基本上我正在跟踪UIView的touchesbegantouchesEndedtouchesCancelled方法。 但问题是,当视图离开屏幕时,即当它或其中一个父母从超级视图中移除时,它不再获得任何触摸事件。有没有办法将这个“最后”touchesended事件提供给视图?也许如果UIView被告知不可见,我也可以将此事件用于此目的。

好的,我将把评论中的答案移到原始问题上,以便对重点进行总结。

  • 我跟踪触摸事件的原因是我想申请一些 漂亮的效果,如触摸开始发光和删除这些效果 触摸结束。
  • 我无法模拟touchesEnded删除它们的原因 观点是我不直接删除它们。相反,我删除其中一个 他们的祖先观点。我无法跟踪祖先的观点 一直到UIWindow,我认为在技术上是不可能的。 相反,框架应该将此视为我认为的事件。

1 个答案:

答案 0 :(得分:0)

我通过覆盖-(void)willMoveToWindow:(UIWindow *)newWindow方法并检查newWindow是否为nil来解决我的问题。