я разрабатываю приложение, где я загружаю urlrequest в UIWebView, и это произошло успешно.
Но теперь я пытаюсь отобразить UIProgressView, когда загрузка происходит (запускающийся от 0,0 до 1,0), который изменяется динамично с прогрессом загрузки.
Как я могу сделать это?
UIWebView не дает вам никакой информации о ходе выполнения в обычном режиме. Что вам нужно сделать, это сначала асинхронно получить данные с помощью NSURLConnection.
Когда метод делегата NSURLConnection connection: didReceiveResponse
, вы собираетесь взять число, полученное из expectedContentLength
, и использовать его в качестве максимального значения. Затем внутри метода делегата connection: didReceiveData
вы собираетесь использовать свойство length
экземпляра NSData, чтобы сообщить вам, как далеко вы продвинулись, так что ваша доля прогресса будет length / maxLength
, нормализовано между 0,0 и 1,0.
Наконец, вы собираетесь инициировать веб-просмотр с данными вместо URL-адреса (в вашем соединении : метод делегата didFinishLoading
).
Два предостережения:
Возможно, что свойство expectedContentLength
NSURLResponse будет иметь значение -1 (константа NSURLReponseUnknownLength
).