Я получаю «0» и «about: blank» для NSLogs каждый раз, однако.
Не удивительно. Вы предлагаете веб-просмотр загружать HTML-код, который вы предоставляете в строке, вместо того, чтобы давать ему запрос. URL-адрес, который вы регистрируете, является URL-адресом запроса, а поскольку запроса нет, URL-адрес запроса отсутствует.
Почему он не загружает GIF должным образом?
Возможно, из-за неправильного использования объекта URL. Посмотрите на код:
NSString *html = [NSString stringWithFormat:@"<html><head></head><body><img src=\"%@\"></body></html>", post.url];
Мы не можем сказать, какой тип post.url
есть, но это, вероятно, NSURL*
. Вероятно, вы передаете NSURL в строку формата, и это может не привести к результату, который вы ищете. Попробуйте передать строку, например [post.url absoluteString]
, вместо фактического объекта NSURL.
Кроме того, вы можете записать значение html
сразу после его создания, чтобы вы могли проверить полный HTML-код, который вы отправляете на веб-представление.
Update: Некоторые дополнительные вещи, чтобы проверить:
- Вы используете код в вопросе о главном потоке?
- Происходит ли цикл запуска потока?
- Вы пытались установить базовый URL-адрес, отличный от нуля?
- Если делегат веб-представления имеет метод
-webView:shouldStartLoadWithRequest:
, он возвращает ДА?
- Что произойдет, если вы используете постоянную строку, которая содержит нужный HTML-код, и жестко закодированный URL вместо того, чтобы строить строку с
+stringWithFormat:
?
- Является ли тестовое устройство подключено к сети? (Иногда это самая простая вещь, которая вас заводит.)
- Правильно ли это работает, если вы используете другое изображение?Я заметил, что URL-адрес, который вы используете, предназначен для анимированного файла .gif, попробуйте вместо него анимированный .gif или .jpg.
Обновление 2: Проблема заключается в создании веб-представления. Посмотрите на самой первой строке в коде, который вы показали:
self.GIFWebView = [[UIWebView alloc] init];
Это выглядит хорошо для типичного объекта, но -init
не назначенный инициализатор для зрения. Вместо этого вы должны использовать -initWithFrame:
. Изображение загружается отлично в вашем примере проекта, когда я меняю код в своем проекте на использование правильного инициализатора:
UIWebView *GIFWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
Попробуйте указать базовый URL. Посмотрите, поможет ли это. Кроме того, вы должны напечатать 'webView.scrollView.contentSize.width'. –