我还没有尝试过,但我认为只要我知道用户想要在子滚动视图中滚动,我就必须禁用父滚动视图的滚动,对吗?
两个滚动视图都水平滚动。
如何暂时禁用父级的滚动检测?或者还有其他方式吗?
答案 0 :(得分:9)
UIScrollView有一个名为scrollEnabled
的属性,您可以将其设置为NO
以禁用父滚动视图中的滚动。
我还没有尝试过,但是你可能会发现它正确的东西,即内部滚动视图滚动直到它不能再滚动,此时外滚动视图滚动。
答案 1 :(得分:2)
很有可能。最简单的方法是禁用scrollEnabled
属性,您也可以尝试将外部UIScrollView
的{{1}}设置为其边界,以便它不会滚动。根据您的需要,您可以将“否”设置为contentSize
,但这基本上会使您的滚动视图像普通的UIView一样。
如果你可以控制所有孩子bounce
,你可以实施UIScrollView
协议,但如果你没有,或者你的孩子UIScrollViewDelegate
真的是{{1} }}或UIScrollView
,那么你不能真正依赖UITableView
协议,但请记住UICollectionView
带有UIScrollViewDelegate
并且您可以使用它。一个强大但重要的方法是在UIScrollView
的{{1}}属性上添加一个观察者,这样您就可以捕获所有事件而不必成为panGestureRecognizer
的代理人。
答案 2 :(得分:0)
我做了这个,它确实导致父scrollView不再滚动,这很好但是我的子scrollView通过presentModalViewController推送仍然不响应滚动事件(例如向上或向下滚动) 。我显然错过了一些东西......
编辑:最后通过在父视图上使用'scrollEnabled'来实现它。感谢。
答案 3 :(得分:0)
我有同样的问题,直到我动态设置足够高度到内部ScrollView的contentSize,使用:
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,600)];
显然这只是一个硬编码的例子,你应该设置显示视图的整个内容所需的高度,最后可能不需要滚动。
似乎使用IBuilder设置scrollView的高度是不够的,所以不需要滚动,这就是为什么我认为扫描事件没有到达内部滚动。
希望这有帮助!