UILabel行数计算returns多出一行
UILabel number of lines calculation returns one extra line
我正在使用下面的 UILabel 扩展 属性。 UILabel 换行方式为Truncate Tail。它总是比实际行数多 returns 行。关于这个问题的任何想法。
var maxNumberOfLines: Int {
guard let text = text, let font = font else {
return 0
}
layoutIfNeeded()
let charSize = font.lineHeight
let textSize = (text as NSString).boundingRect(
with: CGSize(width: bounds.width, height: .greatestFiniteMagnitude),
options: .usesLineFragmentOrigin,
attributes: [.font: font],
context: nil)
let linesRoundedUp = Int(ceil(textSize.height/charSize))
return linesRoundedUp
}
我的标签中的字符串末尾有一个换行符,这是额外的一行。在分配给 UILabel 之前删除它解决了这个问题。
我正在使用下面的 UILabel 扩展 属性。 UILabel 换行方式为Truncate Tail。它总是比实际行数多 returns 行。关于这个问题的任何想法。
var maxNumberOfLines: Int {
guard let text = text, let font = font else {
return 0
}
layoutIfNeeded()
let charSize = font.lineHeight
let textSize = (text as NSString).boundingRect(
with: CGSize(width: bounds.width, height: .greatestFiniteMagnitude),
options: .usesLineFragmentOrigin,
attributes: [.font: font],
context: nil)
let linesRoundedUp = Int(ceil(textSize.height/charSize))
return linesRoundedUp
}
我的标签中的字符串末尾有一个换行符,这是额外的一行。在分配给 UILabel 之前删除它解决了这个问题。