【问题标题】:UIWindow stops receiving touches after removing a subview from itUIWindow 在从中删除子视图后停止接收触摸
【发布时间】:2023-03-29 02:00:01
【问题描述】:
我正在使用 UIWindow 的子类来处理应用程序所有视图中的触摸事件。
我正在尝试实现拖放机制。
点击并按住视图时,我会移除该视图并开始用手指拖动。
问题是在我删除视图后,窗口停止接收触摸事件,直到我抬起手指并再次触摸它。
帮助?
编辑:
我发现删除子视图后,窗口正在接收触摸但触摸阶段是UITouchPhaseStationary而不是UITouchPhaseMoved,即使[事件触摸]中只有一个UITouch;这怎么可能?
【问题讨论】:
标签:
iphone
ios
uiview
uitouch
uiwindow
【解决方案1】:
我不太确定,但我认为您的问题是因为您正在尝试处理 UIWindow 类中的事件,而不是 UIViewController 类。 UIWindow 不是为此而设计的。你为什么不试试这个:
- 将
UIViewController 类的实例添加到您的项目中。
- 将该
UIViewController 的视图添加到您的UIWindow 实例中。
- 将触摸处理方法添加到
UIViewController。
- 将您的第一个视图添加到
UIViewController。
- 响应触摸事件。
- 从
UIViewController 中删除第一个视图,并引入第二个视图,或其他。
(这是在UIViewController 下交换视图,而不是在UIWindow 的实例中。)