8

我还没有尝试过,但我假设一旦我知道用户想要在子滚动视图中滚动,我就必须禁用父滚动视图的滚动,对吧?

两个滚动视图都是水平滚动的。

如何暂时禁用父级的滚动检测?还是有其他方法?

4

4 回答 4

9

UIScrollView 有一个名为 的属性scrollEnabled,您可以将其设置NO为禁用父滚动视图中的滚动。

我还没有尝试过,但您可能会发现它做正确的事,即内部滚动视图滚动直到它不能再滚动,此时外部滚动视图滚动。

于 2009-05-26T19:08:16.910 回答
2

这是很有可能的。最简单的方法是禁用该scrollEnabled属性,您也可以尝试将 outer 设置为其边界,使其不会滚动。根据您的需要,您也可以将 No 设置为,但这基本上会使您的滚动视图像常规 UIView 一样。UIScrollViewcontentSizebounce

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.

于 2013-10-23T03:34:07.673 回答
0

我这样做了,它确实导致父 scrollView 不再滚动,这很好,但是通过 presentModalViewController 推送的子 scrollView 仍然不响应滚动事件(例如向上或向下滚动)。我显然错过了一些东西......

编辑:通过在父视图上使用'scrollEnabled'终于让它工作了。谢谢。

于 2009-09-07T20:13:27.013 回答
0

在我为内部 ScrollView 的 contentSize 动态设置足够的高度之前,我遇到了同样的问题,使用:

[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,600)];

显然这只是一个硬编码的例子,你应该设置显示整个视图内容所需的高度,最后可能不需要滚动。

似乎使用 IBuilder 设置 scrollView 的高度是不够的,所以不需要滚动,这就是为什么我认为扫描事件没有到达内部滚动。

希望这可以帮助!

于 2011-02-02T20:35:48.877 回答