Swift 3 - UITextView total line counter



美好的一天,祝你一切顺利。

这似乎是一个重复的问题,但对我来说没有任何用处。

我已经查看了这个问题的多个实例,并且尝试了许多不同的方法,但它并不能解决我的问题。

我有一个文本视图,它被限制为 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
} 
}

这将为您提供字符串实际占用的行数。

希望对您有所帮助!!

相关内容

  • 没有找到相关文章

最新更新