У меня есть несколько локальных html-файлов, и я хочу показать их в таблице со статическими (на данный момент) ячейками. Каждый UIWebView будет иметь разную высоту (я не хочу иметь какие-либо прокрутки в UIWebView), поэтому, очевидно, каждая ячейка имеет разную высоту. Большинство комментариев, которые я читал, не одобряют использование UIWebView в ячейках таблицы. Как вы думаете: применимо ли это? будет ли это медленно и нужно время для загрузки?
Стоит ли добавлять uiwebviews в ячейки таблицы?
Ответы (2)
UIWebview в ячейках tableview наверняка повлияет на производительность. Чтобы отобразить содержимое HTML в ячейках таблицы, вы можете использовать NSAttributedString.
Я использовал UIWebView
в приложении для отображения содержимого, поступающего из Интернета, в виде строк в виде таблицы.
Я знаю, что делать это не рекомендуется из-за большого использования памяти UIWebView
, но в моем случае это был не только вопрос отображения форматированного текста: мне нужно было отображать HTML, загруженный из Интернета, поэтому я попробовал этот вариант. Короче, я попробовал, и это сработало.
Время от времени приложение получало предупреждения об использовании памяти, но оно также могло эффективно восстанавливать память и работать без изменений даже на iPod touch (всего 256 МБ памяти). Возможно, это повлияло на производительность, но из-за того, что приложение делало именно это (загружало текст из Интернета и отображал его в таблице), оно отлично реагировало.
Одно важное замечание: страницы были довольно простыми, только текст, а каждая таблица содержала не более 15 элементов. Кроме того, вы должны учитывать одну вещь: UIWebView
вносит небольшую задержку в рендеринг, поэтому вам придется иметь дело с ней и принять ее в своем приложении (насколько мне известно, от нее невозможно избавиться).
В более позднем проекте я использовал другой подход: использовал только один UIWebView
и создал таблицу с использованием HTML/js внутри нее. Что ж, это тоже сработало, но я не увидел больших улучшений в пиковом использовании памяти или производительности (я проверял с помощью инструментов).
Это всего лишь мой опыт, я не пытаюсь сказать, что это сработает или это хорошая практика. В любом случае, я надеюсь, что это поможет.