UIWindow从中删除子视图后停止接收触摸

时间:2011-08-21 09:22:07

标签: iphone ios uiview uitouch uiwindow

我正在使用UIWindow的子类来处理应用程序的所有视图中的触摸事件。 我正在尝试实现拖放机制。

点击并按住视图时,我会移除该视图并开始用手指拖动。 问题是在我删除视图后窗口停止接收触摸事件,直到我抬起手指并再次触摸它。

帮助?

编辑: 我发现删除子视图后,窗口正在接收触摸,但触摸阶段是UITouchPhaseStationary而不是UITouchPhaseMoved,即使[event touches]中只有一个UITouch;这怎么可能?

1 个答案:

答案 0 :(得分:0)

我不太确定,但我认为您的问题是因为您正在尝试处理UIWindow课程中的事件,而不是UIViewController课程。 UIWindow不是为此而设计的。你为什么不试试这个:

  1. UIViewController类的实例添加到您的项目中。
  2. UIViewController的视图添加到您的UIWindow实例。
  3. 将触控处理方法添加到UIViewController
  4. 将您的第一个视图添加到UIViewController
  5. 回应触摸事件。
  6. UIViewController中删除第一个视图,然后引入第二个视图,或其他任何视图。 (这是在UIViewController下交换视图,而不是在UIWindow的情况下交换视图。)