写了个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 方法进一取整后问题解决。