使用 preferredMaxLayoutWidth 为 UILabel 添加宽度约束

最近在 iOS 8 系统遇到了一个很奇怪的问题,处于 UITableViewCell 中的 UILabel ,即使设置好了 UILabel 的 leftright 属性,依然无法实现 UILabel 的自动折行,导致在末尾出现省略号。

这种情况可以尝试设置 preferredMaxLayoutWidth

Apple 官方文档中这样解释它

This property affects the size of the label when layout constraints are applied to it. During layout, if the text extends beyond the width specified by this property, the additional text flows to one or more new lines, increasing the height of the label.

也就是说,设置这个属性可以认为是给 UILabel 添加了一个 width 约束,使它可以在宽度达到最大值时自动折行。我理解为以下两种写法的效果是等价的。

// 1
label.preferredMaxLayoutWidth = 100.f;
// 2
[label mas_makeConstraints:^(MASConstraintMaker *make) {
    make.width.lessThanOrEqualTo(@100);
}];
复制代码

使用这种写法解决了在 iOS 8 上 UILabel 不自动折行的问题。至于原理,还不不太清楚,只是记录一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值