我设计了一个包含两个标签的视图。标题文本是可变的,它对于长标题和短标题都应该看起来不错,因此将其设置为支持多行文本(numberOfLines
为0
),直到没有更多可用空间为止。点字体应该缩小(adjustsFontSizeToFitWidth
是true
)。
为了演示我的问题,我使用了恒定的标题文本并调整了容器的高度。
subtitleLabel.setContentCompressionResistancePriority(.required, for: .vertical)
防止了这种情况。情况看起来更好。字幕标签将恢复到正确的高度,而标题标签的字体将减少。
我尝试过的事情:
titleLabel.setContentHuggingPriority(.required, for: .vertical)
来做到这一点。不幸的是,没有变化。titleLabel.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
上的内容压缩优先级。没变化。titleLabel.minimumScaleFactor = 0.5
。没变化。preferredMaxLayoutWidth
以匹配标签的宽度,但这也无济于事。还有其他建议吗?有没有办法使用自动布局完成此设计?
答案 0 :(得分:1)
自定尺寸标签(自动调整其高度以适合其内容的条件)和带有自定尺寸文本的标签(字体大小更改为适合高度)的条件是相反的。前者假定字体大小固定且高度灵活。后者假定字体大小灵活且高度固定。
您似乎在问是否可以一次自动地同时拥有两者。不,你不能。如果您想要一个自定义大小的标签,一旦超出一定数量的文本,字体大小就会变小,您您必须使字体大小变小。