美好的一天,祝你一切顺利。
这似乎是一个重复的问题,但对我来说没有任何用处。
我已经查看了这个问题的多个实例,并且尝试了许多不同的方法,但它并不能解决我的问题。
我有一个文本视图,它被限制为 11 行,然后变得可滚动.....我想获得文本内容的总行数,而不是屏幕上的显示大小,所有解决方案仅为我提供 11 行,但真正的行数为 +- 30 行。即使我显示 5 行文本,它也返回 11
我怎样才能集体找出所有文本的行数。
任何帮助将不胜感激
使用此扩展程序来解决您的问题!
extension String {
func lines(font : UIFont, width : CGFloat) -> Int {
let constraintRect = CGSize(width: width, height: .greatestFiniteMagnitude);
let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil);
return Int(boundingBox.height/font.lineHeight);
}
}
在这里我正在做什么
extension String {
func lines() -> CGFloat {
let font = //your font
let width = //constrained width to which text can expand
let constraintRect = CGSize(width: width, height: .greatestFiniteMagnitude)
let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
return boundingBox.height/font.lineHeight
}
}
这将为您提供字符串实际占用的行数。
希望对您有所帮助!!