2017-07-28 15 views
0

おはようございます。スイフト3 - UITextView総ラインカウンタ

これはおそらく繰り返しの質問のようですが、何も私のために働いていません。

私はこの質問の複数の例を見てきましたが、私は多くの異なることを試みましたが、それは私の問題を解決しません。

私は11行に制約され、スクロール可能になるテキストビューを持っています.....テキストコンテンツの合計行数を画面上の表示サイズではなく、すべてのソリューションで11実際の行数は+ 30行です.5行のテキスト行を表示する場合でも、11を返します。

すべてのテキストの行数をどのようにして調べることができますか。

任意の助けもここ

答えて

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

をやっているこれは、あなたに実際に取っている文字列ですラインの数を与えます。

希望すると助かります!

+0

ありがとう –

+0

ありがとうございました。このソリューションの時間を探していて本当に感謝しています。 @Agent Smith –

+0

あなたは答えを受け入れることができますか?ハッピーコーディング:) –

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