iOS 使用 boundingRect 计算 UILabel 的高度不准确的问题

09-04 12:03 83 0 已编辑

写了个cell,需要返回label的高度,但是使用 boundingRect 方法计算,一直都显示不全被折叠,计算方法如下

let titleHeight = model.title?.boundingRect(with: textMaxSize, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: font], context: nil).height

然后网上搜到说是因为中文标点导致的计算不准,推荐使用 sizeThatFits 方法

let label = UILabel()
label.font = font
label.numberOfLines = 0
label.text = model.content
let contentHeight = label.sizeThatFits(CGSize(width: CGFloat(ScreenWidth - 2 * mainMargin - 45), height: maxContentHeight)).height

然并卵,后来打印高度,发现都是浮点数,后来使用 ceil 方法进一取整后问题解决。

做自己喜欢做的事。
Up骚年
Up骚年 站长 @ 十七度 创建者 17 声望
all or nothing, now or never.
0 人点赞
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论