【发布时间】:2016-10-19 08:54:11
【问题描述】:
value = UILabel(frame: CGRect(x: 5 ,y: 5, width:Int(self.view.frame.width - 140) ,height: 16 ))
value.numberOfLines = 0
value.font = UIFont.systemFont(ofSize: 14.0)
value.lineBreakMode = .byWordWrapping
value.text = ((items["comment"] as? String) ?? "")!
value.setLineHeight(lineHeight: CGFloat(1))
var lineCount = 0;
let textSize = CGSize(width: value.frame.size.width, height: CGFloat(Float.infinity));
let rHeight = lroundf(Float(value.sizeThatFits(textSize).height))
let charSize = lroundf(Float(value.font.lineHeight));
lineCount = rHeight/charSize
print(lineCount)
}
当试图获取该 UILabel 中的行数时。它总是给我一个比实际行数更多的..
extension UILabel {
func setLineHeight(lineHeight: CGFloat) {
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 1.0
paragraphStyle.lineHeightMultiple = lineHeight
paragraphStyle.alignment = self.textAlignment
let attrString = NSMutableAttributedString(string: self.text!)
attrString.addAttribute(NSFontAttributeName, value: self.font, range: NSMakeRange(0, attrString.length))
attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range:NSMakeRange(0, attrString.length))
self.attributedText = attrString
}
}
【问题讨论】:
-
尝试使用属性字符串。 stackoverflow.com/questions/14409897/…
-
对不起@Aks 我没有得到你?..我看到了那个链接..但我只对行数感兴趣
-
能否分享一下setLineHeight方法的代码
-
@NaveenRamanathan 是的,但如果我删除它也不会给我正确的答案。请参阅我的编辑问题