Стоит ли добавлять uiwebviews в ячейки таблицы?

У меня есть несколько локальных html-файлов, и я хочу показать их в таблице со статическими (на данный момент) ячейками. Каждый UIWebView будет иметь разную высоту (я не хочу иметь какие-либо прокрутки в UIWebView), поэтому, очевидно, каждая ячейка имеет разную высоту. Большинство комментариев, которые я читал, не одобряют использование UIWebView в ячейках таблицы. Как вы думаете: применимо ли это? будет ли это медленно и нужно время для загрузки?


person iosMentalist    schedule 24.04.2012    source источник
comment
я нашел этот ответ: stackoverflow.com/questions/6626294/ но я предпочитаю услышать ваши комментарии   -  person iosMentalist    schedule 24.04.2012


Ответы (2)


UIWebview в ячейках tableview наверняка повлияет на производительность. Чтобы отобразить содержимое HTML в ячейках таблицы, вы можете использовать NSAttributedString.

person Vignesh    schedule 24.04.2012

Я использовал UIWebView в приложении для отображения содержимого, поступающего из Интернета, в виде строк в виде таблицы.

Я знаю, что делать это не рекомендуется из-за большого использования памяти UIWebView, но в моем случае это был не только вопрос отображения форматированного текста: мне нужно было отображать HTML, загруженный из Интернета, поэтому я попробовал этот вариант. Короче, я попробовал, и это сработало.

Время от времени приложение получало предупреждения об использовании памяти, но оно также могло эффективно восстанавливать память и работать без изменений даже на iPod touch (всего 256 МБ памяти). Возможно, это повлияло на производительность, но из-за того, что приложение делало именно это (загружало текст из Интернета и отображал его в таблице), оно отлично реагировало.

Одно важное замечание: страницы были довольно простыми, только текст, а каждая таблица содержала не более 15 элементов. Кроме того, вы должны учитывать одну вещь: UIWebView вносит небольшую задержку в рендеринг, поэтому вам придется иметь дело с ней и принять ее в своем приложении (насколько мне известно, от нее невозможно избавиться).

В более позднем проекте я использовал другой подход: использовал только один UIWebView и создал таблицу с использованием HTML/js внутри нее. Что ж, это тоже сработало, но я не увидел больших улучшений в пиковом использовании памяти или производительности (я проверял с помощью инструментов).

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

person sergio    schedule 24.04.2012
comment
Содержит ли «UIWebView» какую-либо прокрутку или растягивает и расширяет ячейку? - person iosMentalist; 24.04.2012
comment
Нет прокрутки; в конце загрузки используется вызов javascript для чтения высоты содержимого и соответствующей установки высоты ячейки. - person sergio; 24.04.2012
comment
спасибо sergio... я скорее использую NSAtrributedString, чем вызываю js для каждой ячейки (у меня могут быть тысячи) - person iosMentalist; 25.04.2012