我有一个包含多个子视图的视图的应用程序。子视图没有实现任何touchesbegins逻辑。 Superview实现了所有touchesbegins逻辑并分别操作每个子视图(如命中测试)。
此后我将我的子视图转换为图层。我现在的问题是,如果我触摸一个图层,超级图层的托管视图永远不会被调用touchesbegins方法。但是,如果我触摸背景,则会触发touchesbegin方法。
我从文档中了解到图层无法处理事件,如果是这样,为什么它会阻止事件到托管视图?
感谢您的帮助,无法理解这一点。
-Corey
答案 0 :(得分:2)
我发现了问题......我正在发布使用[CALayer图层]创建的子图层。由于我没有控制它们,我不应该管理它们。
答案 1 :(得分:1)
CALayers不应阻止触控事件。你的userInteractionEnabled
标志是否在托管视图中设置(听起来像是,如果你有一些接触)?它是否在UIScrollView中,可能正在进行自己的触摸处理。
答案 2 :(得分:0)
你的touchesBegan方法是什么类? 我有一个类似的问题,因为我的touchesBegan方法是在UIView子类中。 将方法移动到UIViewController子类后,我的问题得到了解决。
尝试这样做。