我有一个UIScrollView,我用它作为两个“页面”视图的容器。第一页包含两个子视图:一种“画布”UIView子类,用户可以使用触摸进行绘制,以及一个“控制面板”UIView子类,其中包含UIControls。滚动视图本身已禁用滚动(我正在使用UIPageControl滚动它。)
问题在于:当我点击控制面板视图中的任何控件时,它们工作正常。但是,当我触摸画布视图时,没有任何反应。画布子视图上没有控件;它只是一个空的UIView子类,可以检测触摸并在用户的手指下绘制点。 (以前这一切都运行正常;我最近刚刚将两个部分放在滚动视图中。)
如何告诉UIScrollView将触摸转发到画布子视图?我已经设置了滚动视图,以便延迟内容触摸和可取消内容触摸。用户交互已启用且多次触摸均已启用。
我不知道是否继承UIScrollView并更改它的触摸处理,或者是否覆盖canvas UIView子类中的其他方法。
编辑:Vince(评论者)促使我看看触摸事件处理程序所在的位置。它们存在于UIViewController子类中,该子类拥有控制面板视图和画布视图(现在,滚动视图。)touchesBegan
不再被调用。
由于
答案 0 :(得分:0)
您使用的是iOS 5吗?如果是这样,请尝试使用UIViewController
容器API。如果您有一个ViewController
,其中包含UIScrollView
和“子”视图控制器,则可以链接问题。尝试在控制器中为scrollView调用[self addChildViewController:theCanvasVC]
。
我猜你的建筑所以我可能会离开。让我知道您的应用是如何组织的。
您可以阅读Container View Controllers here。向下滚动到“实现容器视图控制器”。