Как показано на диаграмме выше ... lineHeight
- это высота оранжевого поля. Как я могу получить высоту синего поля (т.е. lineHeight
+ высота межстрочного интервала)? Спасибо!
ОБНОВЛЕНИЕ: Я обнаружил, что 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