【问题标题】:iOS: how to set constraints to UIScrollViewiOS:如何为 UIScrollView 设置约束
【发布时间】:2015-11-30 10:43:46
【问题描述】:
我想用垂直滚动的内容实现一个简单的UIViewController。
我一直在尝试使用UIScrollView,但我正在努力在 Interface Builder 中设置约束。任何人都可以说明正确的方法吗?
让我们考虑一个页面,该页面有一个带有长文本的UILabel,以及位于文本底部的几个UIImageViews。
【问题讨论】:
标签:
ios
uiscrollview
interface-builder
nslayoutconstraint
【解决方案1】:
UIScrollView 在处理autolayout 约束和滚动功能时有两个重要属性。这些是大小和内容大小。
UIScrollView size 是UIScrollView 与其父视图相关的大小。
您可以通过将顶部、尾随、前导、底部中的每一个固定到其父视图来设置其约束。
另一方面,UIScrollView 内容大小是与之相关的UIScrollView 子视图的大小。它基本上是可滚动的大小。设置其子视图的约束有点棘手,您不能将每个子视图的每一侧都固定到UIScrollView。您还需要为其添加一些高度和宽度约束,这样它就不会给出模棱两可的约束警告。
例如,假设标签下方有一个UILabel 和一个UIImageView。
创建垂直滚动内容的简单方法是:
- 将
UILabel 的顶部、前导、尾随空格限制设置为UIScrollView
- 设置
UILabel高宽限制
- 将高度约束连接到代码,以便您可以修改其值。
- 将
UIImageView 顶部约束设置为UILabel
- 将
UIIMageView 尾随、前导和底部空格约束设置为UIScrollView
- 设置
UIImageView高宽限制
- 根据文本更改
UILabel 高度约束并调用layoutIfNeeded