gpt4 book ai didi

ios - 窃取触摸的手势,如 iOS 多任务滑动

转载 作者:行者123 更新时间:2023-11-29 11:15:14 25 4
gpt4 key购买 nike

我知道我想做什么,但我不知道该怎么做:我想实现类似 iOS 多任务处理手势的功能。也就是说,如果触摸次数大于(比方说)两次,我想从我的 View 层次结构中的任何 View “窃取”触摸。当然,手势并不是为了控制多任务处理,它只是我所追求的透明触摸窃取。

因为这是一个相当复杂的应用程序(它广泛使用了 viewController 容器),我希望它对它碰巧出现的 View 是透明的(即我希望能够显示任意 View 和层次结构,包括 UIScrollViews, MKMapViews、UIWebViews 等,无需更改其实现即可与我的手势配合使用)。

仅仅向公共(public)父 View 添加一个 gestureRecognizer 是行不通的,因为启用交互的 subview 会吃掉落在它们上面的所有触摸。

添加一个视觉上透明的启用 UI 的 View 作为主视图层次结构的同级(但在前面)也不起作用,因为现在这个 View 吃掉了所有的触摸。我已经尝试在 touchView 中重新实现 touchesBegan: 等,但是将触摸转发到 nextResponder 不起作用,因为这实际上是通用的 super View 当 touchView 放弃触摸时,将触摸集中在本应接收触摸的 View 周围。

我敢肯定我不是唯一一个为此寻找解决方案的人,而且我敢肯定还有比我更聪明的人已经找到了解决方案。我什至怀疑它实际上可能并不难,只是也许我的大脑今天不会只见树木不见森林。无论如何,我感谢任何有用的答案:)

最佳答案

我建议您尝试使用 method swizzling,在 UIView 上重新实现 touchesbegan。我认为最好的方法是将触摸次数存储在静态共享变量中(以便每个 View 都可以递增/递减该值)。这只是一个非常简单的想法,请持保留态度。

希望这对您有所帮助。

再见! :)

关于ios - 窃取触摸的手势,如 iOS 多任务滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9742936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com