CALayers会阻止基础视图中的触摸事件吗?

时间:2008-12-22 09:25:33

标签: iphone cocoa-touch core-animation

我有一个包含多个子视图的视图的应用程序。子视图没有实现任何touchesbegins逻辑。 Superview实现了所有touchesbegins逻辑并分别操作每个子视图(如命中测试)。

此后我将我的子视图转换为图层。我现在的问题是,如果我触摸一个图层,超级图层的托管视图永远不会被调用touchesbegins方法。但是,如果我触摸背景,则会触发touchesbegin方法。

我从文档中了解到图层无法处理事件,如果是这样,为什么它会阻止事件到托管视图?

感谢您的帮助,无法理解这一点。

-Corey

3 个答案:

答案 0 :(得分:2)

我发现了问题......我正在发布使用[CALayer图层]创建的子图层。由于我没有控制它们,我不应该管理它们。

答案 1 :(得分:1)

CALayers不应阻止触控事件。你的userInteractionEnabled标志是否在托管视图中设置(听起来像是,如果你有一些接触)?它是否在UIScrollView中,可能正在进行自己的触摸处理。

答案 2 :(得分:0)

你的touchesBegan方法是什么类? 我有一个类似的问题,因为我的touchesBegan方法是在UIView子类中。 将方法移动到UIViewController子类后,我的问题得到了解决。

尝试这样做。