Iphone CALayers是否在基础视图中阻止触摸事件?

Iphone CALayers是否在基础视图中阻止触摸事件?,iphone,cocoa-touch,core-animation,Iphone,Cocoa Touch,Core Animation,我有一个应用程序,其视图包含多个子视图。子视图未实现任何touchesbegins逻辑。Superview实现了所有touchesbegins逻辑,并在每个子视图被触摸时分别对其进行操作(由命中测试确定) 此后,我一直在将子视图转换为图层。我现在的问题是,如果我触摸一个层,超级层的宿主视图永远不会得到touchesbearts方法。但是,如果我触摸背景,touchesbegin方法将触发 我从文档中了解到,层无法处理事件,如果是这样,为什么它会将事件阻止到宿主视图 谢谢你的帮助,我想不起来了 -

我有一个应用程序,其视图包含多个子视图。子视图未实现任何touchesbegins逻辑。Superview实现了所有touchesbegins逻辑,并在每个子视图被触摸时分别对其进行操作(由命中测试确定)

此后,我一直在将子视图转换为图层。我现在的问题是,如果我触摸一个层,超级层的宿主视图永远不会得到touchesbearts方法。但是,如果我触摸背景,touchesbegin方法将触发

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

谢谢你的帮助,我想不起来了


-Corey不应阻止触摸事件。您的
userInteractionEnabled
标志是否已在主机视图中设置(如果您正在进行一些操作,听起来是这样的)?它是否在UIScrollView中,UIScrollView可能正在进行自己的触摸处理。

CALayers不应阻止触摸事件。您的
userInteractionEnabled
标志是否已在主机视图中设置(如果您正在进行一些操作,听起来是这样的)?它是否在UIScrollView中,它可能正在进行自己的触摸处理。

我发现了问题。。。我正在释放使用[CALayer layer]创建的子层。既然我不能控制他们,我就不应该管理他们

我发现了问题。。。我正在释放使用[CALayer layer]创建的子层。既然我不能控制他们,我就不应该管理他们

你的touchesbeated方法在哪一类? 我遇到了一个类似的问题,因为我的touchesbeent方法位于UIView子类中。 将该方法移动到UIViewController子类后,我的问题得到了解决


试着这样做。

你的touchsbegind方法是在哪一类? 我遇到了一个类似的问题,因为我的touchesbeent方法位于UIView子类中。 将该方法移动到UIViewController子类后,我的问题得到了解决


试着这样做。

Ben这是我在这里的第一篇帖子,我不确定我是应该把我的回答作为答案还是作为对你答案的评论。希望我做得对。Ben,这是我第一次在这里发表文章,我不确定我是应该把我的回答作为答案还是作为对你答案的评论发表。希望我做得对。