iOS:如何为 UIScrollView 设置约束

Posted

技术标签:

【中文标题】iOS:如何为 UIScrollView 设置约束【英文标题】:iOS: how to set constraints to UIScrollView 【发布时间】:2015-11-30 10:43:46 【问题描述】:

我想用垂直滚动的内容实现一个简单的UIViewController

我一直在尝试使用UIScrollView,但我正在努力在 Interface Builder 中设置约束。任何人都可以说明正确的方法吗?

让我们考虑一个页面,该页面有一个带有长文本的UILabel,以及位于文本底部的几个UIImageViews。

【问题讨论】:

我answered 有一个类似的问题,请您仔细检查一下吗? 看看这个answer。 【参考方案1】:

UIScrollView 在处理autolayout 约束和滚动功能时有两个重要属性。这些是大小和内容大小。

UIScrollView size 是UIScrollView 与其父视图相关的大小。 您可以通过将顶部、尾随、前导、底部中的每一个固定到其父视图来设置其约束。

另一方面,UIScrollView 内容大小是与之相关的UIScrollView 子视图的大小。它基本上是可滚动的大小。设置其子视图的约束有点棘手,您不能将每个子视图的每一侧都固定到UIScrollView。您还需要为其添加一些高度和宽度约束,这样它就不会给出模棱两可的约束警告。

例如,假设标签下方有一个UILabel 和一个UIImageView

创建垂直滚动内容的简单方法是:

    UILabel 的顶部、前导、尾随空格限制设置为UIScrollView 设置UILabel高宽限制 将高度约束连接到代码,以便您可以修改其值。 将UIImageView 顶部约束设置为UILabelUIIMageView 尾随、前导和底部空格约束设置为UIScrollView 设置UIImageView高宽限制 根据文本更改UILabel 高度约束并调用layoutIfNeeded

【讨论】:

以上是关于iOS:如何为 UIScrollView 设置约束的主要内容,如果未能解决你的问题,请参考以下文章

如何为 UIScrollView 启用方向锁定?

为 UIScrollView 设置约束

IOS-如何在情节提要上为通用设备的 UIscrollview 设置框架?

如何为 UIView 的自定义子类设置约束?

在 iOS 中为 UIPageControl 添加约束时 UIScrollView 不滚动

当设备旋转时,如何为视图设置正确的边界?