1

我正在尝试设计一个类似于这样的视图:

iPhone_scrollView

也就是说,我有一个UIScrollViewinside 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)];
    }
}

我想要做的是,当垂直拖动子视图控制器时,滚动它的父视图控制器,这也应该滚动子视图控制器。也就是说,当垂直拖动子视图控制器时,我希望包括孩子在内的整个父滚动视图垂直滚动相同的偏移量。但是当水平拖动子视图控制器时,我只想滚动子视图控制器本身并保持其父级固定。我仍然无法实现这种行为,有什么帮助吗?

4

2 回答 2

0

尝试将内部滚动视图的高度设置为父滚动视图内容的高度。

于 2013-08-12T16:25:28.430 回答
0

添加点击手势怎么样?

就像是

向滚动视图添加点击手势

初始设置scrollDarkGrey.enabled = NO

scrollView点击深灰色时scrollDarkGrey.enabled =YES

然后当点击父滚动时scrollDarkGrey.enabled = NO

于 2013-08-12T16:22:55.900 回答