Я работаю над созданием пузыря чата, как в iMessage.Я должен использовать UITextView, чтобы использовать DataDetectors для автоматического определения URL, телефонных номеров и адресов.Моя иерархия представлений выглядит так:
-UITableViewCell
-ContentView
-ChatBubbleContainerView
-UITextView
ChatBubbleContainerView
имеют ограничения
- 10-pt слева, справа, сверху и снизу полей ->
ContainerView
UITextView имеет ограничения
- 10 пт слева, справа, сверху и снизу полей ->
ChatBubbleContainerView
Я хочу достичьповедение, чтобы заставить текстовое представление автоматически расширять его высоту и ширину согласно его содержанию внутри, например, текста.Но текстовое представление не имеет внутреннего размера контента .
Это то, что я пробовал и получил неправильные результаты
- Переопределение
intrinsicContentSize
свойство текстового представления, но оно тоже не работает. - Задание ограничения ширины для
ChatBubbleContainerView
и изменение его на результат sizeThatFits()
method - Задание ограничения ширины для
ChatBubbleContainerView
и изменив его на результат text.boundingRect
метода
Это результаты, которые я получил
- Это не работает должным образом иЯчейка не выкладывается так, как ожидалось, когда я прокручиваю представление таблицы
- Она работает, но начальная ширина ячейки в кончике составляет 375 пт, что хорошо для 4,7-дюймовых устройств, но когда я переключаюсь на устройства, такие как iPhone SEкоторый имеет 4 дюйма при начальной загрузке табличного представления или вставке ячейки, ширина ячейки вычисляется в соответствии с 375 пунктами, а не 320 пунктами.После прокрутки ячейки макет раскладывается, как и ожидалось.
- То же самое с 2.
Когда я пробую тот же макет с UILabel
, он работает, как и ожидалось.Как вы, возможно, знаете, UILabel
имеет собственный размер контента.
Спасибо