使UIScrollView的子视图固定,而其他子视图可滚动

问题描述:

我想制作一个视图,其中三个子视图堆叠在一起,中间子视图可以滚动并与其他子视图一起滚动。使UIScrollView的子视图固定,而其他子视图可滚动

如何以编程方式实现此目的?我曾尝试过

  • 将根视图的内容大小设置为可滚动视图的大小,但这会使所有视图都滚动。

- 设置中间子视图的内容大小,但不为根视图设置任何属性,但会使所有视图无法滚动。

请帮忙。我是iOS新手。

在此先感谢

您可以使用在UIScrollViewscrollViewDidScroll:委托回调调整您的视角的位置。在回调中,获取滚动视图的contentOffset并使用它来设置固定视图的位置。例如,如果您希望固定视图从scrollview顶部始终保持100 px,请将其初始帧设置为(0,100,宽度,高度),然后在回调中将帧设置为( 0,contentOffset.y + 100,宽度,高度)。

结果是,子视图将出现固定在给定的高度。

+0

谢谢!这工作。只是我的scrollviews需要水平滚动,所以我更新了委托中框架的x坐标。 – sam 2011-01-28 03:08:47

如果您的UIScrollView具有超级视图(即容器视图),则可以将“固定”视图添加为超级视图的子视图而不是UIScrollView。你只需要计算一次你的帧坐标。

你可以将它从UIScrollView的子视图像滚动型超图:如图所示这里在此快照

地方/在滚动视图(不内滚动视图)设置你的按钮。还可以针对您的滚动视图的超级视图设置按钮约束(位置)。

enter image description here

这里是裁判。每个视图的位置层次结构的快照。

enter image description here