Повторное использование UITextView внутри UITableViewCell

Я использую UITextView для отображения некоторого сложного содержимого (например, текста другого цвета, изображения, ссылки и т. д.) внутри UITablViewCell.

Содержимое сначала анализируется в экземпляр NSTextStorage. Затем соответствующие NSLayoutmanager и NSTextContianer настраиваются для хранения текста.

Наконец, экземпляр TextView состоит из текстового контейнера.

let textView = UITextViewFixed(frame: frame, textContainer: container)

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

Пробовал replaceLayoutManager в текстовом контейнере, не работает.

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


person kukushi    schedule 12.06.2018    source источник


Ответы (1)


Оказывается, текстовое представление нельзя использовать повторно так, как я его использую.

В качестве обходного пути я отказался от создания UITextView из текстового контейнера каждый раз, когда содержимое менялось. Текстовое представление теперь создается вместе с ячейкой, как и все другие подпредставления. Изменение attributedText должно быть достаточным для моего использования сейчас.

person kukushi    schedule 24.07.2018