Ios UIWebView显示gif图像时出现问题

Ios UIWebView显示gif图像时出现问题,ios,uiwebview,Ios,Uiwebview,我想在一个视图中显示多个图像。图像是从internet下载的,是gif格式 这就是我所做的,但只显示默认的断开图标 \u images是存储图像文件路径的NSArray NSMutableString *html = [NSMutableString string]; for (NSString *str in _images) { [html appendFormat:@"<img src='%@' />", str]; } [_webView loadHTMLStri

我想在一个视图中显示多个图像。图像是从internet下载的,是gif格式

这就是我所做的,但只显示默认的断开图标

\u images
是存储图像文件路径的NSArray

NSMutableString *html = [NSMutableString string];

for (NSString *str in _images) {
    [html appendFormat:@"<img src='%@' />", str];
}

[_webView loadHTMLString:html baseURL:nil];

或者,还有其他显示多个图像的好方法吗?否则,我可能必须为每个图像创建一个UIImageView,并将它们放在滚动视图中。

UIWebView在显示.GIF图像时应该没有问题(正如您在测试中所证明的那样)。当在您提供的URL中找不到图像时,通常会出现断开的图标。因此,可能需要检查您的图像URL(通过在任何浏览器中打开URL)

就我个人而言,我宁愿使用带有UIImageView的UIScrollView。UIWebViews在加载和显示其内容时往往相当缓慢。如果您想对用户对图像的操作做出反应,UIWebView还有另一个缺点:您需要实现一些javascript事件处理,当用户点击UIWebView中的一个图像时,会有一个短暂但明显的延迟。如果您想进一步在图像上添加滑动或其他手势识别,您需要导入一个javascript库来实现这一点。如果你的图片不需要用户交互,那么这些缺点在你的情况下并不重要。另一方面,使用UIWebView非常方便,因为它可以自动异步加载其内容

UIScrollView和UIImageViews解决方案使用户交互处理变得非常简单。只需将UIgestureRecognitors添加到您的图像中即可。另一方面,如果您有很多图像或大型图像,则无法同时加载所有图像,否则会遇到内存警告。因此,您可能需要添加一些逻辑,以仅加载当前显示的图像,并释放不可见的图像。您还必须为图像实现异步加载,以便在加载图像时不阻止滚动

如果所有图像的大小都相同,则可以使用UITableView显示图像,并使用其内置的表单元重用功能来保持较小的内存占用。不过,您仍然必须实现异步加载

无论如何,我认为这件事没有对错之分。如果您不需要用户交互,那么使用UIWebView更容易、更快地实现,但我认为UIScrollView/UITableView仍会有更好的用户体验

NSData *data = [NSData dataWithContentsOfFile:[_images lastObject]];
[_webView loadData:data MIMEType:@"image/gif" textEncodingName:@"UTF-8" baseURL:nil];