【发布时间】:2011-01-27 15:07:34
【问题描述】:
我想制作一个视图,其中三个子视图相互堆叠,中间子视图可滚动,其他子视图固定。
如何以编程方式实现这一目标?我试过了
- 将根视图的 contentsize 设置为可滚动视图的大小,但这会使所有视图滚动。
-设置中间子视图的内容大小,而不为根视图设置任何属性,但这会使所有视图都不可滚动。
请帮忙。我是 iOS 新手。
提前致谢
【问题讨论】:
标签: objective-c ios uiscrollview
我想制作一个视图,其中三个子视图相互堆叠,中间子视图可滚动,其他子视图固定。
如何以编程方式实现这一目标?我试过了
-设置中间子视图的内容大小,而不为根视图设置任何属性,但这会使所有视图都不可滚动。
请帮忙。我是 iOS 新手。
提前致谢
【问题讨论】:
标签: objective-c ios uiscrollview
您可以使用UIScrollView 上的scrollViewDidScroll: 委托回调来调整视图的位置。在回调中,获取滚动视图的contentOffset 并使用它来设置固定视图的位置。
例如,如果您希望固定视图始终保持距离滚动视图顶部 100 像素,请将其初始帧设置为 (0, 100, width, height),然后在回调中将帧设置为 (0 , contentOffset.y + 100, 宽度, 高度)。
结果是子视图将固定在给定的高度。
【讨论】:
[self.view bringSubiewToFront:label] 之类的方式将它们移动到这些视图的前面。
如果您的 UIScrollView 有一个超级视图(即容器视图),您可以将您的“固定”视图添加为超级视图的子视图,而不是 UIScrollView。您只需计算一次框架坐标。
【讨论】: