我想实现一个简单的 UIViewController
,内容可以垂直滚动。
我一直在尝试使用 UIScrollView
,但我在 Interface Builder 中设置约束时遇到困难。任何人都可以说明正确的方法吗?
让我们考虑一个页面,它有一个带有长文本的 UILabel
和放置在文本底部的几个 UIImageView
。
最佳答案
UIScrollView
在处理 autolayout
约束和滚动功能时有 2 个重要属性。这些是大小和内容大小。
UIScrollView
size 是与其父 View 相关的 UIScrollView
的大小。
您可以通过将顶部、尾部、前导、底部中的每一个固定到其父 View 来设置其约束。
UIScrollView
另一方面,内容大小是与其相关的 UIScrollView
subview 的大小。它基本上是可滚动的大小。设置其 subview 的约束有点棘手,您不能将每个 subview 的每一侧都固定到UIScrollView
。您还需要向它添加一些高度和宽度约束,这样它就不会给出 ambiously constraint 警告。
例如,假设您在标签下方有一个 UILabel
和一个 UIImageView
。
创建垂直滚动内容的简单方法是:
- 将
UILabel
的顶部、前导、尾部空格约束设置为UIScrollView
- 设置
UILabel
高宽约束 - 将高度约束连接到代码,以便您可以修改它的值。
- 将
UIImageView
顶部约束设置为UILabel
- 将
UIIMageView
尾部、前导和底部空间约束设置为UIScrollView
- 设置
UIImageView
高宽约束 - 根据文本更改
UILabel
高度约束并调用layoutIfNeeded
关于iOS:如何为 UIScrollView 设置约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996719/