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

时间:2016-02-24 07:41:02

标签: ios swift

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

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

谢谢!

1 个答案:

答案 0 :(得分:13)

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

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