UILabel仅针对某些文本长度缩放

时间:2019-04-29 12:49:56

标签: ios autolayout uilabel

我有一个自定义UIView,其中包含一个UILabel和一个UISwitch。开关和标签被限制为彼此相邻,它们的中心y相等,并且其侧面与父级的侧面匹配(带有边距)。标签被约束为与其父级的顶部和底部(再次加上页边距)相连,并且其行数设置为0,因此可以使用以下方式缩放为适合所有文本的大小:自动换行作为换行模式。我有一堆这样的自定义视图,它们在垂直UIStackView的下面彼此垂直,对齐和分布设置为fill。堆栈视图本身位于滚动视图内部,该滚动视图受限于根视图的所有侧面(按预期滚动)。这是情况的屏幕截图,也显示了我的问题:

Custom views in UIStackView

我在自定义视图中向标签添加了红色背景以显示其边界。在自定义视图之间添加了分隔符视图。在此屏幕快照的第二个自定义视图中,问题变得明显。它的标签文本实际上是WordOne WordTwo WordThree WordFour,但是无论出于什么原因,文本都会被包裹,而标签/父对象不会增加其大小来容纳它。如下面的视图所示,添加一个额外的单词突然会缩放标签以显示其所有行。我已将标签和父级的抗压缩性都设置为UILayoutPriorityRequired,但无济于事。我有一个解决方法,其中涉及一个layoutSubviews覆盖项,需要手动计算标签大小,但我既希望了解发生了什么,也希望避免使用hack。有人可以阐明这种行为吗?

0 个答案:

没有答案