Вычислить высоту текста UITextView с помощью sizeWithFont: constrainedToSize: lineBreakMode, похоже, не возвращает правильные результаты - PullRequest
2 голосов
/ 29 июня 2010

Я пытаюсь вычислить высоту текста, ограниченного UITextView, но, похоже, он не возвращает правильные результаты.

Вот мой код:

- (void)textViewDidChange:(UITextView *)aTextView {
    CGSize textSize = [aTextView.text sizeWithFont:aTextView.font constrainedToSize:aTextView.frame.size lineBreakMode:UILineBreakModeWordWrap];
    counter.text = [NSString stringWithFormat:@"%f", textSize.height];
}

Вы можете загрузить пример проекта и короткую заставку, иллюстрирующую проблему (418 КБ) .

Таким образом, проблема в том, что когда я набираю длинное слово в конце строки, слово перемещается на следующую строку, но высота строки не корректно корректируется, когда это происходит.

Любая помощь приветствуется.

Лучшее
Томас.

P.S. : Это происходит с iPhone SDK 3.1.3

1 Ответ

5 голосов
/ 29 июня 2010

Проблема в том, что UITextField имеет небольшое поле вокруг области, которую он на самом деле рисует и переносит текст.Насколько я знаю, нет никакого запрограммированного способа получить этот размер, но только вычитание 6 или около того из размера должно заставить его вести себя соответствующим образом.

...