I am using UITextView
In my View , I have requirement to count number of line contained by textview am using following function to read \'\\n\'
. H
You can look at the contentSize property of your UITextView to get the height of the text in pixels, and divide by the line height spacing of the UITextView's font to get the number of text lines in the total UIScrollView (on and off screen), including both wrapped and line broken text.
extension NSLayoutManager {
var numberOfLines: Int {
guard let textStorage = textStorage else { return 0 }
var count = 0
enumerateLineFragments(forGlyphRange: NSMakeRange(0, numberOfGlyphs)) { _, _, _, _, _ in
count += 1
}
return count
}
}
Get number of lines in textView:
let numberOfLines = textView.layoutManager.numberOfLines
Just for reference...
Another way you can get the number of lines and also the content, is splitting the lines in an array using the same method mentioned on the answer edit by BoltClock.
NSArray *rows = [textView.text componentsSeparatedByString:@"\n"];
You can iterate through the array to get the content of each line and you can use the [rows count] to get the exact number of rows.
One thing to keep in mind is that empty lines will be counted as well.
In iOS 7, it should exactly be:
float rows = (textView.contentSize.height - textView.textContainerInset.top - textView.textContainerInset.bottom) / textView.font.lineHeight;