Objective c 如何使UIScrollView向前接触UIView子类子视图?
我有一个UIScrollView,我用它作为两个“页面”视图的容器。第一个页面包含两个子视图:一种“canvas”UIView子类,用户可以通过触摸在其上绘制,另一种是“control panel”UIView子类,其中包含UIControls。滚动视图本身已禁用滚动(我正在使用UIPageControl滚动它。) 问题是:当我点击控制面板视图中的任何控件时,它们都可以正常工作。但是,当我触摸画布视图时,什么也没有发生。画布子视图上没有控件;它只是一个空的UIView子类,用于检测触摸并在用户手指下绘制点。(以前这一切都很好;我最近刚刚将这两个部分放到了滚动视图中。) 如何告诉UIScrollView将触摸转发到画布子视图?我已经设置了scrollview,以关闭延迟内容触摸和可取消内容触摸。启用了用户交互和多点触摸功能 我不知道是否要将UIScrollView子类化并更改其触摸处理,或者是否覆盖canvas UIView子类中的其他方法 编辑:文斯(评论员)提醒我看看触摸事件处理程序的位置。它们存在于UIViewController子类中,该子类拥有控制面板视图和画布视图(现在还有滚动视图)。Objective c 如何使UIScrollView向前接触UIView子类子视图?,objective-c,ios,cocoa-touch,uiscrollview,Objective C,Ios,Cocoa Touch,Uiscrollview,我有一个UIScrollView,我用它作为两个“页面”视图的容器。第一个页面包含两个子视图:一种“canvas”UIView子类,用户可以通过触摸在其上绘制,另一种是“control panel”UIView子类,其中包含UIControls。滚动视图本身已禁用滚动(我正在使用UIPageControl滚动它。) 问题是:当我点击控制面板视图中的任何控件时,它们都可以正常工作。但是,当我触摸画布视图时,什么也没有发生。画布子视图上没有控件;它只是一个空的UIView子类,用于检测触摸并在用户手
touchsbegind
不再被调用
谢谢您正在使用iOS 5吗?如果是这样,请尝试使用
UIViewController
容器API。如果您的ViewController
下有UIScrollView
和“子”视图控制器,则可以链接问题。尝试在控制器中为滚动视图调用[self addchildview controller:theCanvasVC]
我在猜测你的建筑,所以我可能会离开。让我知道你的应用程序是如何组织的
你可以在上面阅读。向下滚动到“实现容器视图控制器”。子视图子类是否处理事件?@Vince,啊哈,你有什么发现。视图控制器具有触摸处理程序,而不是视图本身。谢谢由于控制器属于响应链,我认为它应该处理它们。strange@Vince,我也这么想。事实上,如果我翻转scrollview的一些设置(我在问题中提到的四个),那么它确实会向前移动触摸;问题是这样做会阻止控制面板的uicontrol接收触摸。肯定有什么不对劲。谢谢