根据 Swift 中的 UILabel 文本调整 UIView 高度的大小



所以我有一个简单的UIView,里面有一个UILabel。目前,UIView的高度是硬编码的,当UILabel文本足够长以至于内容需要比UIView提供的高度更高的高度时,这是一个问题。

有没有一种简单的方法来计算UIView的适当高度以显示所包含UILabel中的所有内容?

谢谢!

如果您使用的是自动布局:
您只需要将UILabel的行距,尾随,顶部和底部固定到其超级视图(前导,尾随,顶部和底部)。
numberOfLines 属性设置为 0,表示需要多少。现在您可以决定将 UIlabel 实例的宽度限制为特定数字或设置preferredMaxLayoutWidth,基本上您是在说如果文本大于此宽度,您希望标签创建另一行。
现在它来了布局的魔力,每个视图都有一个intrinsicContentSize属性,UILabel它对应于文本占用的大小。这使得UILabel"推动"其超级视图边界以适应其内容大小。
当然,超级视图不能对高度有任何限制。

如果不使用自动布局:
设置文本后,您可以通过设置固定宽度和CGFLOAT_MAX高度来向标签发送- (CGSize)sizeThatFits:(CGSize)size方法,它将返回全文占用的大小,因此您可以相应地设置超级视图框架。

最新更新