0

美好的一天,希望你一切都好。

这似乎是一个重复的问题,但对我没有任何帮助。

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

我有一个文本视图,它被限制为 11 行,然后变得可滚动.....我想获取文本内容的总行数,而不是屏幕上的显示大小所有解决方案只为我提供 11 行,但真正的行数为 +- 30 行。即使我显示 5 行文本,它也会返回 11

我怎样才能集体找出所有文本的行数。

任何帮助将非常感激

4

2 回答 2

1

使用此扩展程序来解决您的问题!

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);
    }
}
于 2017-07-28T14:02:00.800 回答
0

这是我在做什么

 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
        } 
 }

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

希望能帮助到你!!

于 2017-07-28T12:49:02.267 回答