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

发布于 2024-11-30 21:50:28 字数 261 浏览 2 评论 0原文

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

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

帮助?

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

I'm using a subclass of UIWindow to handle touch event in all views of the app.
I'm trying to implement a drag and drop mechanism.

When tapping and holding on a view, i remove that view and start dragging with the finger.
problem is after i remove the view the window stop receiving touch events until i lift my finger and touch it again.

help?

EDIT:
i found that after the subview is removed, the window is receiving touches but the touch phase is UITouchPhaseStationary and not UITouchPhaseMoved, even though there is only one UITouch in [event touches]; how is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔戏命师 2024-12-07 21:50:28

我不太确定,但我认为你的问题是因为你试图处理 UIWindow 类中的事件,而不是 UIViewController 类。 UIWindow 的设计初衷并不是这样做。为什么不试试这个:

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

I am not quite sure, but I think your problem is because your are trying to handle events in UIWindow class, rather than UIViewController class. UIWindow is not designed to do so. Why don't you try this:

  1. Add an instance of UIViewController class to your project.
  2. Add the view of that UIViewController to your UIWindow instance.
  3. Add the touch handling method to the UIViewController.
  4. Add your first view to UIViewController.
  5. Respond to touch event.
  6. Remove the first view from UIViewController, and bring in the second view, or whatever.
    (It is kind of swapping views under the UIViewController, rather than in the instance of UIWindow.)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文