gpt4 book ai didi

ios - UIWebView显示gif图片的问题

转载 作者:行者123 更新时间:2023-12-02 03:52:11 26 4
gpt4 key购买 nike

我想在一个 View 中显示多个图像。图片是从网上下载的,是gif格式的。

这就是我所做的,但只显示默认的损坏图标。

_images是一个NSArray,存储图像文件的路径

NSMutableString *html = [NSMutableString string];

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

[_webView loadHTMLString:html baseURL:nil];

我尝试了这个并且显示了图像,所以我相信 UIWebView 能够显示我的图像。

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

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

最佳答案

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

我个人更愿意使用带有 UIImageViews 的 UIScrollView 。 UIWebView 加载和显示其内容的速度往往相当慢。如果您想对用户对图像的操作使用react,UIWebView 还有另一个缺点:您需要实现一些 JavaScript 事件处理,并且当用户点击 UIWebView 内的其中一张图像时,会出现短暂但明显的延迟。如果您想进一步在图像上添加滑动或其他手势识别功能,您需要导入一个 javascript 库来执行此操作。如果您不需要对图像进行用户交互,那么这些缺点在您的情况下并不真正重要。另一方面,使用 UIWebView 非常方便,因为它会自动异步加载其内容。

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

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

不管怎样,我认为这件事没有对错之分。如果您不需要用户交互,那么 UIWebView 的实现会更容易、更快,但恕我直言,UIScrollView/UITableView 仍然会有更好的用户体验。

关于ios - UIWebView显示gif图片的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6716514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com