自动布局 - UILabel 在方向更改后宽度缩小,这是由另一个应该自动调整字体大小的 UILabel 引起的

Posted

技术标签:

【中文标题】自动布局 - UILabel 在方向更改后宽度缩小,这是由另一个应该自动调整字体大小的 UILabel 引起的【英文标题】:Autolayout - UILabel shrinks in width after orientation change, cause by another UILabel which is supposed to auto-adjust font size 【发布时间】:2018-02-08 14:03:17 【问题描述】:

我有 2 个UILabel 水平并排使用自动布局,如下所示:

    1st-Label 为全角(如 sizeToFit) 2nd-LabeladjustsFontSizeToFitWidth = true

在启动时一切都很好,当从横向返回纵向时,第一个标签缩小到零宽度。

约束如下:

第一个标签:H:|-0-[1stLabel]V:[1stLabel]-0-| 第二个标签:H:[2ndLabel]-0-|, V:[2ndLabel]-0-| 前导/尾随关系约束: H:[1stLabel]-(>=1)-[2ndLabel]

【问题讨论】:

【参考方案1】:

将标签1的抗压优先级设置为1000

【讨论】:

【参考方案2】:

我错过了在 2nd-Label 上设置 ContentCompressionResistancePriority:

secondLabel.setContentCompressionResistancePriority(.defaultLow, for:.horizontal)

【讨论】:

以上是关于自动布局 - UILabel 在方向更改后宽度缩小,这是由另一个应该自动调整字体大小的 UILabel 引起的的主要内容,如果未能解决你的问题,请参考以下文章

动态更改 UILabel 宽度不适用于自动布局

UILabel尺寸更改不会使用自动布局设置动画

方向更改时的自定义 TableViewCell 自动布局问题

方向更改时自定义UITableViewCell自动布局问题

如何使用自动布局调整 UILabel 宽度以适合文本?

使用自动布局更改方向时更改内容顺序