Как получить высоту строки в UITextView

enter image description here

Как показано на диаграмме выше... lineHeight - это высота оранжевого окна. Как я могу получить высоту синего квадрата (т.е. lineHeight + высота межстрочного интервала)? Спасибо!

UPDATE: Я обнаружил, что поведение lineHeight по-разному зависит от символов в контенте. Если содержание все на английском языке, lineHeight является корневым (21, например, в UITextView по умолчанию). Однако, когда содержимое смешивается с китайскими символами, UIFont lineHeight по-прежнему отображается как 21, а self.textView.contentSize.height увеличивается по-разному:

English - adding 21 points for each line
Chinese - adding 24 points for each line

UPDATE (sizeWithFont:)

CGSize constrainedRect = CGSizeMake(1000, 1000);
CGSize rectEnglish = [@"hello\nworld" sizeWithFont:self.textView.font constrainedToSize:constrainedRect lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"width: %.2f height: %.2f", rectEnglish.width, rectEnglish.height);
CGSize rectChinese = [@"你\n好嗎" sizeWithFont:self.textView.font constrainedToSize:constrainedRect lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"width: %.2f height: %.2f", rectChinese.width, rectChinese.height);

выход:

width: 41.00 height: 42.00
width: 34.00 height: 42.00

Ответы

Ответ 1

Вы должны использовать

yourTextView.font.lineHeight

Ответ 2

Попробуйте использовать NSString UIKit дополнения. Некоторая вариация -sizeWithFont: должна быть тем, что вам нужно.