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

ard*_*evd 5 ios swift

所以我有一个简单的UIView,其中包含UILabel.目前,UIView的高度是硬编码的,当UILabel文本足够长以使内容需要比UIView提供的更高时,这是一个问题.

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

谢谢!

And*_*rea 13

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

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