Самый простой способ - использовать механизм кэширования HTTP.Можете ли вы установить заголовки HTTP на веб-сервере?Если это так, вы можете установить максимальный возраст для каждого изображения или другого ресурса на веб-сайте, чтобы хранить их в кэше в течение определенного времени.
UIWebView будет учитывать заголовки HTTP.
Самый простой способ, но он ограничен.Есть определенные ограничения размера кэша, установленные iOS.Большие ресурсы могут не кэшироваться или могут быстро выгружать другие ресурсы из кэша.
Другой способ - отправлять свои собственные запросы ресурсов с помощью NSURLRequest и указывать флаги NSURLRequestUseProtocolCachePolicy.Вы можете соблюдать кеширование на веб-сервере или можете изменить это.В этом случае iOS обрабатывает кеширование.Проблема в том, что вы не можете указать прокси для UIWebView.Это означает, что вам придется самостоятельно управлять перенаправлениями на ваш прокси.Вам нужно будет проанализировать содержимое веб-сайта и захватить внутренние запросы на изображения, CSS, javascript и т. Д.
Еще один способ - обрабатывать как запросы, так и кэширование самостоятельно.Это, очевидно, самый трудоемкий способ, но вы будете иметь полный контроль в своих руках.
Возможно, вы захотите использовать ASIWebPageRequest или ProxyingUIWebView в своем коде или получить идеиот их реализации для себя.