跟踪触摸事件而不覆盖 UIWindow 和 UIApplication 中的发送事件方法
Posted
技术标签:
【中文标题】跟踪触摸事件而不覆盖 UIWindow 和 UIApplication 中的发送事件方法【英文标题】:Tracking touch event without overwriting send event methods in UIWindow and UIApplication 【发布时间】:2014-03-14 05:12:39 【问题描述】:我正在尝试为现有代码库的新模块实现会话管理,其中 main.m
、Appdelegate
和 UIApplication
文件捆绑在一个库中,我们有无权修改。
我尝试通过将 手势识别器 添加到 UIWindow
方法来跟踪触摸事件,但通常的按钮触摸事件行为不端。
现在正计划继承 UIView
并覆盖 touches 开始并点击测试方法并使我所有的 UIView
类实现这个自定义的 UIView
类。
除了上述方法之外,我们还有什么更好的方法来跟踪触摸事件吗?
【问题讨论】:
【参考方案1】:最好的方法是覆盖 UIApplication
和 UIWindow
的 send 事件,但在您的情况下这是不可能的。
尝试将UIGestureRecognizer
添加到您的应用程序共享UIWindow
,然后设置其委托并实现以下委托方法。
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
return NO;
返回NO
将阻止手势识别器看到这个触摸对象。
您可以在此方法中添加跟踪触摸事件的实现。
【讨论】:
以上是关于跟踪触摸事件而不覆盖 UIWindow 和 UIApplication 中的发送事件方法的主要内容,如果未能解决你的问题,请参考以下文章