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

我想使一个视图有三个子视图堆叠在一起,中间的子视图可以滚动,其他视图也可以滚动。

我怎样才能实现这个程序化? 我努力了

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

– 设置中间子视图的内容,而不需要为根视图设置任何属性,但是使所有的视图不可上传。

请帮忙。 我是iOS新手。

提前致谢

您可以使用UIScrollView上的scrollViewDidScroll: delegatecallback来调整视图的位置。 在callback中,获取scrollview的contentOffset并使用它来设置固定视图的位置。

例如,如果您希望固定视图始终保持距滚动视图顶部100 px,请将其初始帧设置为(0,100,宽度,高度),然后在callback中将帧设置为(0,contentOffset。 y + 100,宽度,高度)。

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

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

你可以把它从UIScrollView的子视图移动到超级视图的滚动视图,如:

将此button放置在滚动视图上(不在滚动视图中),如本快照中所示。 还可以设置button约束(位置)相对于您的滚动视图的超级视图。

在这里输入图像说明

这里是参考。 每个视图的位置层次的快照。

在这里输入图像说明