我正在尝试设计一个类似于这样的视图:
也就是说,我有一个UIScrollView
inside another UIScrollView
。浅灰色的滚动视图是父视图:它占据整个屏幕宽度,仅用于垂直滚动。其中的滚动视图,深灰色的,仅占其父级宽度的一部分,仅用于水平滚动。
我想要实现的行为是这样的:我希望能够同时垂直滚动父滚动视图的所有内容,包括内部滚动视图中的内容。但是,另一方面,我希望只能水平滚动内部滚动视图。
我设法通过将其内容宽度调整到屏幕来避免水平滚动父滚动视图,但我无法避免自己垂直滚动滚动视图内部:我希望内部滚动视图仅在整个滚动视图垂直滚动父滚动视图可以。
我该如何管理这种情况?谢谢!
编辑。我试图这样做:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView == self.childScrollView) {
[self.parentScrollView setContentOffset:CGPointMake(self.parentScrollView.contentOffset.x, self.childScrollView.contentOffset.y)];
[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, 0)];
}
}
我想要做的是,当垂直拖动子视图控制器时,滚动它的父视图控制器,这也应该滚动子视图控制器。也就是说,当垂直拖动子视图控制器时,我希望包括孩子在内的整个父滚动视图垂直滚动相同的偏移量。但是当水平拖动子视图控制器时,我只想滚动子视图控制器本身并保持其父级固定。我仍然无法实现这种行为,有什么帮助吗?