2013-08-21 3 views
0

Я использую UIWebView для визуализации локального содержимого html (специальный html-контент с javascript). Содержимое html нужно постепенно обновлять, но каждый раз, когда это происходит, и я перезагружаю веб-представление, он немного «танцует» для обновления, что очень отвлекает, тем более, что обновления очень незначительные и происходят часто. Если бы я мог просто заморозить дисплей, перезагрузите страницу за кадром, а затем перерисуйте дисплей, я уверен, что это будет выглядеть нормально. Но могу ли я это сделать? Или есть ли какие-либо другие подходы к обновлению html-страницы (или только части содержимого страницы) без проблем?Как перезагрузить UIWebView настолько плавно, насколько возможно

Заранее благодарю за помощь!

ответ

1

Вы можете:

  1. принять "снимок" в UIWebView (см How to capture current view screenshot and reuse in code? (iPhone SDK));
  2. показать его в UIImageView по телефону UIWebView;
  3. перезаряжать UIWebView;
  4. , когда UIWebView закончил перезагрузку, удалите UIImageView из иерархии.

Я сомневаюсь, что есть способ сказать UIWebView «заморозить» экран во время перезагрузки, как рендеринг Webkit обеспечивает обратную связь с пользователем о состоянии загрузки страницы.

Другим решением является обновление DOM с помощью javascript (и XHR, предположительно), что устраняет необходимость перезагрузки всей страницы в UIWebView.

+0

Спасибо за ответ. Первый вариант кажется слишком запутанным. Не могли бы вы рассказать о втором решении? (не знакомы с XHR) – rmp251

+0

Первый вариант действительно не должен быть суматохой. Решение javascript - использовать Ajax для перезагрузки частей HTML-кода без перезагрузки всей страницы. Если вы используете jQuery, есть [куча функций, чтобы позаботиться об этом] (http://api.jquery.com/category/ajax/). Если вы никогда не делали ничего подобного, google «Ajax», там много обучающих программ :) –

+0

Наконец-то все это работало с использованием JavaScript. В итоге мне пришлось синхронизировать код javascript и объектно-C. Резюме: 1. Использовал 'stringByEvaluatingJavaScriptFromString' для вызова javascript из объекта-C. 2. Используется [этот подход] (http://blog.techno-barje.fr/post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/), чтобы сигнализировать объективу-C, когда javascript был завершен. Прекрасно работает. – rmp251

Смежные вопросы