iOS:如何为 UIScrollView 设置约束

标签 ios uiscrollview interface-builder nslayoutconstraint

我想实现一个简单的 UIViewController,内容可以垂直滚动。

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

让我们考虑一个页面,它有一个带有长文本的 UILabel 和放置在文本底部的几个 UIImageView

最佳答案

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

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

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

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

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

  1. UILabel 的顶部、前导、尾部空格约束设置为 UIScrollView
  2. 设置UILabel高宽约束
  3. 将高度约束连接到代码,以便您可以修改它的值。
  4. UIImageView 顶部约束设置为 UILabel
  5. UIIMageView 尾部、前导和底部空间约束设置为 UIScrollView
  6. 设置UIImageView高宽约束
  7. 根据文本更改UILabel高度约束并调用layoutIfNeeded

关于iOS:如何为 UIScrollView 设置约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996719/

相关文章:

ios - 类似 UITextView 的类,但具有处理 URL 点击的能力

ios - 如何在 PhoneGap 构建中使用 SVG 图像作为启动画面?

ios - 如何在 UITextView 中自动换行?

iphone - 完全用代码复制 PhotoScroller

iphone - "Best"在 UINavigationBar 下实现 UISegmentedControl 的方法

iOS 自动布局使我的 View 在两个 View 之间居中

ios - 嵌入式 Youtube 视频 - UIWebView 和 Safari 之间的区别

ios - iOS 中有没有一种方法可以在不显示消息 View Controller 的情况下发送文本消息?

ios - 在 UITableViewCell 上禁用仅向左滑动。

ios - UITableViewController 背景颜色设置为默认(白色),但显示为黑色