使用Interface Builder和Autolayout在UIScrollView中正确调整UILabel的大小?

JRG*_*per 5 uiscrollview ios autolayout

我在界面构建器中创建了一个简单的视图设置.以下是它的外观:

IB视图布局

视图层次结构很简单:

view
- scrollView
-- label
Run Code Online (Sandbox Code Playgroud)

滚动视图显示为grey背景锚定到其超级视图顶部,前导,尾随和底部,约束为0.

标签以yellow背景显示,并具有所示的约束.此外,该标签具有content hugging priority1000横向和纵向,它具有content compression resistance priority1000横向和垂直.

在纵向方向上,标签尺寸正确:

纵向方向截图

但是,在横向方向上,标签的水平尺寸不正确(我打算用标签填充屏幕的宽度,减少约束插入,如图所示):

景观方向截图

如何在横向方向上水平正确地标注此标签?

SoV*_*Va_ 13

有一个解决方案给你.

1.使用零约束将UIScrollView添加到容器(UIView): 在此输入图像描述

在此输入图像描述

2.为Label添加约束:top,bottom,leading,trailing spaces = 20.

3.添加约束:label.width = container.width - 40

  • 为此,在视图结构树中选择标签,点击ctrl并拉到容器.并选择Equal Widths.

在此输入图像描述

  • 然后选择创建的约束并转到其Utilities并将常量值设置为40.

在此输入图像描述

您应该获得以下组件: 在此输入图像描述

运行应用程序,转到横向,它的工作原理!

在此输入图像描述

希望很清楚.最好的祝福.


Mal*_*loc -3

很难判断要添加/删除哪些约束才能获得您想要的内容,因为 iOS 保留在无法满足您的所有约束时调整您的约束的权利。

我使用与您拥有的相同视图(UILabel作为 的子视图UIScrollView)创建一个空白项目,并进行一些约束以使 UILabel 在横向上正确调整大小。

在此输入图像描述

但必须检查:

  • 确保从引脚选项设置垂直/水平间距约束,如下所示,并尝试手动删除不需要的约束。

在此输入图像描述