如何在UIScrollView的特定子视图中禁用滚动

Des*_*ond 6 objective-c uiscrollview ios uipangesturerecognizer

我有一个UIScrollView包含许多子视图的视图。子视图之一设计为显示折线图,因此用户可能需要水平拖动。事实是,当我要水平拖动手指时,UIScrollView很容易激活的垂直滚动。现在,我想在图表的子视图中禁用垂直滚动,并在其余部分中将其保持活动状态。

我试图将一个添加UIPanGestureRecognizer到我的图表子视图。它确实禁用了垂直滚动,但水平滚动也被禁用。我知道我可以在手势识别器的处理程序中编写代码来告诉我所需的垂直或水平滚动。但是水平滚动实际上是由子视图的控制器管理的,该控制器是第三方库(JBChartView具体来说)。我想知道是否有解决此问题的简单方法。

非常感谢。

小智 3

使用 UIResponder 类的 -touchesBegan。如果触摸来自您的子视图(您不想滚动)。禁用滚动视图的滚动。如果为该视图调用 -touchesEnded 或 -touchesCancelled 。启用滚动视图的滚动。