Как отрегулировать ширину UITextView, чтобы соответствовать его содержимому без переноса? - PullRequest
9 голосов
/ 21 сентября 2011

Изменение размера UITextView в соответствии с высотой его содержимого может быть достигнуто следующим образом:

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

Есть ли что-то подобное ширине, без переноса текста содержимого?

1 Ответ

17 голосов
/ 21 сентября 2011

1) Вы можете использовать NSString UIKit Additions , чтобы вычислить размер , принятый текстом (и отрегулировать размер ваш UITextView соответственно). Вы можете увидеть пример здесь .

Например, если вам нужно знать размер CGSize, который берется вашим NSString при визуализации в одну строку, используйте CGSize sz = [_textView.text sizeWithFont:_textView.font], затем отрегулируйте ваш кадр с учетом этого значения размера.

Если вам нужно знать размер текста, который отображается в нескольких строках, перенести его, если текст достигает заданной ширины, вместо этого использовать sizeWithFont:constrainedToSize:lineBreakMode: и т. Д.


2) Вам также могут быть интересны sizeThatFits: и sizeToFit методы UIView . Первый возвращает CGSize (который вписывается в данный CGSize, переданный в параметре), так что ваш UITextView может отображать весь ваш текст. Второй на самом деле делает изменение размера, настраивая рамку за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...