在构建自定义UI的时候,有时候会经常在一层UIView上再覆盖一层UIView,例如父层的view管理touch事件和数据,当在该view上覆盖一层view后,就无法把touch事件传递到父view上;而如果把数据传递到子类,在子类上去管理touch事件,这样会打乱逻辑上的分层。
由于事件是在responder 链上传递的,当上一层的view不做响应时,可以把事件传递到下一层的view。如果你的view不需要响应事件时,我们可以设置userInteractionEnabled为NO,这样就可以把事件传递到下一层的view上。
subview.userInteractionEnabled = NO;
本文讨论了在自定义UI中如何解决触控事件被顶层UIView拦截的问题。通过将顶层UIView的userInteractionEnabled属性设置为NO,可以使得触控事件穿透当前层级,从而被底层UIView捕获。
1737

被折叠的 条评论
为什么被折叠?



