Оберните UITextView внутри UIView

Я создаю приложение на основе чата, а в ветке беседы я использую UIView с ограничением макета, завершающимся до супервизора 46 пикселей, чтобы гарантировать, что пузырь чата будет как минимум в 46 пикселях справа от ячейки представления таблицы. Внутри UIView у меня есть дочерний элемент UITextView, который ограничен родительским видом сверху, снизу и слева. Поскольку ширина текстового представления может варьироваться, я не устанавливал ограничение справа.

Как я могу заставить UITextView обернуть текст внутри границ UIView? Если у меня не включены подпредставления клипов на UIView, более длинные сообщения переполняют представление и проходят за конец ячейки табличного представления. Если у меня включены подвиды клипа, более длинные сообщения просто обрезаются и не переносятся.

Если я использую ограничение на конце UITextView, ширина текстового представления не изменится. Это делает пузырь чата намного длиннее, чем сообщение.

Может ли кто-нибудь помочь указать мне правильное направление?


person Mike Walker    schedule 21.04.2015    source источник
comment
Чтобы уточнить, вы помещаете пузыри чата внутри UITableViewCell?   -  person Aaron    schedule 21.04.2015
comment
Да, это правильно. У меня есть ячейка UITableView с одним из представлений внутри, это UIView с дочерним элементом UITextView.   -  person Mike Walker    schedule 21.04.2015
comment
Для UITextView в инспекторе атрибутов включена ли прокрутка?   -  person Aaron    schedule 21.04.2015
comment
Нет, включенная прокрутка не проверяется   -  person Mike Walker    schedule 21.04.2015
comment
Включите прокрутку и посмотрите, что произойдет.   -  person Aaron    schedule 21.04.2015
comment
Когда я включаю прокрутку, высота ячейки табличного представления слишком мала, чтобы увидеть, что находится внутри UITextView.   -  person Mike Walker    schedule 21.04.2015
comment
Вы уже сильно ограничены, если размещаете пузыри чата в ячейках табличного представления. Единственный способ максимизировать текстовое представление без прокрутки — сделать текст как можно более мелким шрифтом и/или максимизировать текстовое представление внутри ограничений. Если вам не нужны функции прокрутки или редактирования, я бы предложил использовать UILabel вместо UITextView или UITextField, если вы хотите отображать только нередактируемый текст (что в ячейке табличного представления должно иметь место), а затем установить Атрибут строк UILabel на количество строк, которые вы хотите отобразить.   -  person Aaron    schedule 22.04.2015


Ответы (1)


Спасибо за помощь. В итоге я использовал UILabel. Я обнаружил, что не должен использовать sizeToFit(), а вместо этого установить preferredMaxLayoutWidth для UILabel. Этот пост действительно помог мне UILabel sizeToFit и ограничения.

person Mike Walker    schedule 22.04.2015