Изменить цвет UIWebView при загрузке контента

В моем приложении есть UIWebView, который показывает текст в формате html (загруженный из файла .plist из моего пакета). UIWebView занимает около 1 секунды для отображения текста на экране, и в течение этой секунды весь UIWebView становится белым. Я попытался установить цвет фона представления на clear или black, но это ничего не дало. Я также пытался использовать методы делегата, чтобы показать UIWebView только тогда, когда он didLoadContent, но этот метод никогда не вызывается, так как у нас нет запроса, я только отображаю там строку html.

Есть ли способ ничего не показывать, пока представление не будет отображено?

Если нет, есть ли другой способ отобразить html-текст на iPhone?

Спасибо.


person Dimitris    schedule 27.12.2009    source источник


Ответы (3)


Мне не приходит в голову: установите для свойства hidden UIWebView значение YES, отобразите что-нибудь, вызовите селектор, чтобы изменить скрытое свойство на NO за 2-3 секунды.

Кстати, вы имеете в виду, что загружаете локальный файл HTML? Или задержка создается загрузкой файла?

~ Натанавра.

person natanavra    schedule 27.12.2009
comment
Ничего не загружено. HTML написан в виде NSString как @"<html><body>...</body></html>". Подход с селектором мне не подойдет, потому что этот html-текст отображается во время загрузки приложения. Так что он остается на экране только в течение нескольких секунд. Таким образом: 1. Я хочу, чтобы он появлялся сразу после загрузки. 2. Я не хочу, чтобы селектор срабатывал слишком поздно, когда весь мой UIViewController был освобожден. - person Dimitris; 28.12.2009

Вы сказали, что этот HTML был загружен и представлен «во время загрузки приложения», что, я думаю, означает запуск вместо загрузки каких-то других данных откуда-то? Я также предполагаю, что HTML представляет собой полностью статические жестко закодированные данные, поскольку вы загружаете их «в автономном режиме» из .plist...

Предложение: почему бы вам не сделать скриншот готовой отрендеренной страницы, сохранить его в своем приложении и отображать при запуске приложения? Должно быть быстрее.

person JOM    schedule 05.02.2010
comment
Это автономные данные, но они должны быть динамическими. У меня есть 20 разных HTML-файлов в plist, и я хочу каждый раз отображать случайный. В конце концов я сделал 20 изображений (рендеринг) и вместо этого загрузил их (так, что вы предложили выше более или менее)... - person Dimitris; 06.02.2010

Я обрабатываю это в своем приложении с помощью переменной javascript, которую я проверяю с помощью NSTimer, который запускается каждые 0,5 секунды... Я оставляю представление скрытым, пока эта переменная не будет установлена...

person Jay Van Vark    schedule 09.07.2010