我还没有尝试过,但我假设一旦我知道用户想要在子滚动视图中滚动,我就必须禁用父滚动视图的滚动,对吧?
两个滚动视图都是水平滚动的。
如何暂时禁用父级的滚动检测?还是有其他方法?
我还没有尝试过,但我假设一旦我知道用户想要在子滚动视图中滚动,我就必须禁用父滚动视图的滚动,对吧?
两个滚动视图都是水平滚动的。
如何暂时禁用父级的滚动检测?还是有其他方法?
UIScrollView 有一个名为 的属性scrollEnabled
,您可以将其设置NO
为禁用父滚动视图中的滚动。
我还没有尝试过,但您可能会发现它做正确的事,即内部滚动视图滚动直到它不能再滚动,此时外部滚动视图滚动。
这是很有可能的。最简单的方法是禁用该scrollEnabled
属性,您也可以尝试将 outer 设置为其边界,使其不会滚动。根据您的需要,您也可以将 No 设置为,但这基本上会使您的滚动视图像常规 UIView 一样。UIScrollView
contentSize
bounce
If you have control over all the child UIScrollView
's, you can implement UIScrollViewDelegate
protocol, but if you don't, or your child UIScrollView
is really a UITableView
, or UICollectionView
, then you can't really rely the UIScrollViewDelegate
protocol, but remember UIScrollView
comes with a panGestureRecognizer
and you can play with that. A powerful but heavy handed way is to add an observer on the panGestureRecognizer
's state
property so that you can capture all the events without being the delegate of the UIScrollView
in question.
我这样做了,它确实导致父 scrollView 不再滚动,这很好,但是通过 presentModalViewController 推送的子 scrollView 仍然不响应滚动事件(例如向上或向下滚动)。我显然错过了一些东西......
编辑:通过在父视图上使用'scrollEnabled'终于让它工作了。谢谢。
在我为内部 ScrollView 的 contentSize 动态设置足够的高度之前,我遇到了同样的问题,使用:
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,600)];
显然这只是一个硬编码的例子,你应该设置显示整个视图内容所需的高度,最后可能不需要滚动。
似乎使用 IBuilder 设置 scrollView 的高度是不够的,所以不需要滚动,这就是为什么我认为扫描事件没有到达内部滚动。
希望这可以帮助!