我想创建一个视图,其中有三个子视图叠放在一起,中间的子视图可滚动,其他视图固定。
我如何通过编程实现这一点? 我已经尝试了以下方法:
- 将根视图的内容大小设置为可滚动视图的大小,但这会使所有视图都可以滚动。
如果仅对中间的子视图设置内容大小而不设置根视图的任何属性,则所有视图均无法滚动。
请帮助我。 我是iOS新手。
提前致谢
我想创建一个视图,其中有三个子视图叠放在一起,中间的子视图可滚动,其他视图固定。
我如何通过编程实现这一点? 我已经尝试了以下方法:
如果仅对中间的子视图设置内容大小而不设置根视图的任何属性,则所有视图均无法滚动。
请帮助我。 我是iOS新手。
提前致谢
您可以使用UIScrollView
上的scrollViewDidScroll:
委托回调来调整视图的位置。在回调函数中,获取滚动视图的contentOffset
,并将其用于设置固定视图的位置。
例如,如果您希望固定视图始终距离滚动视图顶部100像素,则将其初始框架设置为(0, 100, width, height),然后在回调函数中将框架设置为(0, contentOffset.y + 100, width, height)
结果是,子视图将出现在给定高度处固定不动。
如果您的UIScrollView有一个父视图(即容器视图),您可以将您的“固定”视图作为父视图的子视图添加,而不是UIScrollView的子视图。这样只需要计算一次您的框架坐标。
[self.view bringSubviewToFront:label]
的方法,将它们移动到那些视图的前面。 - kevboh