所以我有一个简单的UIView
with a UILabel
包含在其中。目前,高度UIView
是硬编码的,当UILabel
文本足够长,内容需要比文本更高的高度UIView
提供。
有没有一个简单的方法来计算合适的高度UIView
为了显示包含的所有内容UILabel
?
谢谢你!
如果您使用自动布局:
您只需将 UILabel 的前导、尾随、顶部和底部固定到其超级视图(前导、尾随、顶部和底部)。
设置numberOfLines
属性为0,表示你需要多少。
现在您可以决定将 UIlabel 实例的宽度限制为特定数字或设置preferredMaxLayoutWidth
,基本上您是说,如果文本大于此宽度,您希望标签创建另一行。
现在轮到布局的魔力了,每个视图都有一个intrinsicContentSize
财产,于UILabel
它对应于文本占用的大小。这使得UILabel
“推动”其超级视图边界以适应其内容大小。
当然,超级视图的高度不能有任何限制。
如果您不使用自动布局:
设置文本后,您可以发送标签- (CGSize)sizeThatFits:(CGSize)size
方法通过设置固定宽度和CGFLOAT_MAX
在高度上,它将返回全文占用的大小,您可以相应地设置超级视图框架。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)