Iphone 如何将UIScrollView嵌套在UIScrollView中,以便用户可以滚动内部UIScrollView?

Iphone 如何将UIScrollView嵌套在UIScrollView中,以便用户可以滚动内部UIScrollView?,iphone,cocoa-touch,uikit,uiscrollview,Iphone,Cocoa Touch,Uikit,Uiscrollview,我还没有尝试过,但是我假设一旦我知道用户想要在子滚动视图中滚动,我就必须禁用父滚动视图的滚动,对吗 两个滚动视图都是水平滚动的 如何暂时禁用父级的滚动检测?或者有其他方法吗?UIScrollView有一个名为scrollEnabled的属性,您可以将该属性设置为NO,以禁用父滚动视图中的滚动 我还没有试过,但你可能会发现它做了正确的事情,即内部滚动视图一直滚动到无法再滚动为止,此时外部滚动视图会滚动。我这样做了,它确实会导致父滚动视图不再滚动,这很好,但通过presentModalViewCon

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

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


如何暂时禁用父级的滚动检测?或者有其他方法吗?

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


我还没有试过,但你可能会发现它做了正确的事情,即内部滚动视图一直滚动到无法再滚动为止,此时外部滚动视图会滚动。

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


编辑:通过在父视图上使用“scrollEnabled”使其最终工作。谢谢。

我也遇到了同样的问题,直到我使用以下方法将足够的高度动态设置为内部ScrollView的contentSize:

[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,600)];
显然,这只是一个硬编码的示例,您应该设置显示视图的全部内容所需的高度,最后可能不需要滚动

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


希望这有帮助

这是很有可能的。最简单的方法是禁用
scrollEnabled
属性,您还可以尝试将外部
UIScrollView
contentSize
设置为其边界,以便它不会滚动。根据您的需要,您也可以将No设置为
bounce
,但这基本上会使您的滚动视图与常规UIView类似


如果您可以控制所有的子级
UIScrollView
,您可以实现
UIScrollViewDelegate
协议,但是如果您没有,或者您的子级
UIScrollView
实际上是一个
UITableView
,或者
UICollectionView
,那么您就不能真正依赖
UIScrollViewDelegate
协议,但是请记住,
UIScrollView
附带了一个
PangestureRecognitor
,您可以使用它。一种强大但繁重的方法是在
PangestureRecognitizer
状态
属性上添加一个观察者,这样您就可以捕获所有事件,而不必成为所讨论的
UIScrollView
的代表

嗨,哈特芬奇,我想知道如何防止默认行为“内部滚动视图滚动,直到它无法再滚动,此时外部滚动视图滚动”?我希望当用户滚动内部视图时,外部视图可以保留,即使内部视图已滚动到最后。您可以在内部滚动视图上注册代理回调,在内部滚动视图开始滚动时禁用外部滚动视图,并在内部滚动视图完成减速后重新启用。