Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使UIScrollView向前接触UIView子类子视图?_Objective C_Ios_Cocoa Touch_Uiscrollview - Fatal编程技术网

Objective c 如何使UIScrollView向前接触UIView子类子视图?

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子类,用于检测触摸并在用户手

我有一个UIScrollView,我用它作为两个“页面”视图的容器。第一个页面包含两个子视图:一种“canvas”UIView子类,用户可以通过触摸在其上绘制,另一种是“control panel”UIView子类,其中包含UIControls。滚动视图本身已禁用滚动(我正在使用UIPageControl滚动它。)

问题是:当我点击控制面板视图中的任何控件时,它们都可以正常工作。但是,当我触摸画布视图时,什么也没有发生。画布子视图上没有控件;它只是一个空的UIView子类,用于检测触摸并在用户手指下绘制点。(以前这一切都很好;我最近刚刚将这两个部分放到了滚动视图中。)

如何告诉UIScrollView将触摸转发到画布子视图?我已经设置了scrollview,以关闭延迟内容触摸和可取消内容触摸。启用了用户交互和多点触摸功能

我不知道是否要将UIScrollView子类化并更改其触摸处理,或者是否覆盖canvas UIView子类中的其他方法

编辑:文斯(评论员)提醒我看看触摸事件处理程序的位置。它们存在于UIViewController子类中,该子类拥有控制面板视图和画布视图(现在还有滚动视图)。
touchsbegind
不再被调用


谢谢

您正在使用iOS 5吗?如果是这样,请尝试使用
UIViewController
容器API。如果您的
ViewController
下有
UIScrollView
和“子”视图控制器,则可以链接问题。尝试在控制器中为滚动视图调用
[self addchildview controller:theCanvasVC]

我在猜测你的建筑,所以我可能会离开。让我知道你的应用程序是如何组织的


你可以在上面阅读。向下滚动到“实现容器视图控制器”。

子视图子类是否处理事件?@Vince,啊哈,你有什么发现。视图控制器具有触摸处理程序,而不是视图本身。谢谢由于控制器属于响应链,我认为它应该处理它们。strange@Vince,我也这么想。事实上,如果我翻转scrollview的一些设置(我在问题中提到的四个),那么它确实会向前移动触摸;问题是这样做会阻止控制面板的uicontrol接收触摸。肯定有什么不对劲。谢谢