Я загрузил изображение gif в объект NSData (я проверил содержание объекта NSData, и он определенно заполняется). Теперь я хочу загрузить то изображение в свой UIWebView. Я попробовал следующее:
[webView loadData:imageData MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
но я получаю пустой UIWebView. Загрузка изображения от того же URL непосредственно хорошо работает:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:imageUrl]];
[imageView loadRequest:request];
Я должен установить textEncodingName на что-то, или я делаю что-то еще неправильно?
Я хочу загрузить изображение вручную, таким образом, я могу сообщить о продвижении к пользователю, но это - анимированный gif, поэтому когда это сделано, я хочу показать его в UIWebView.
Править: Возможно, я должен перенести свое изображение в HTML так или иначе? Существует ли способ сделать это, не имея необходимость сохранять его на диск?
Вы можете попробовать назначить делегата веб-просмотру и реализовать метод:
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
Чтобы более конкретно узнать, какую ошибку вы получаете. Если он не вызывается, также реализуйте метод:
- (void)webViewDidFinishLoad:(UIWebView *)webView
, просто чтобы убедиться, что что-то происходит, в противном случае может возникнуть проблема с UIWebView
(при условии, что у вас нет 'не вернули NO
из webView: shouldStartLoadWithRequest: navigationType:
)
На самом деле я не пытался загрузить изображение в UIWebView, но поиск в Google дает мне это. Думаю, ваше изображение strin g должен иметь правильный путь и выглядеть как URL
NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSString *HTMLData = @"
<h1>Hello this is a test</h1>
<img src="sample.jpg" alt="" width="100" height="100" />";
[webView loadHTMLString:HTMLData baseURL:[NSURL URLWithString: [NSString stringWithFormat:@"file:/%@//",imagePath]]];
Вы можете увидеть более подробную информацию здесь: Загрузка локальных файлов в UIWebView