iOS:缩放适合或填充UIWebView中的本地图像?

时间:2013-07-26 10:30:08

标签: ios image uiwebview gif

我正在使用UIWebView来显示存储在本地磁盘上的gif动画,因为UIImageView不能与gif格式一起使用。我是这样做的:

[webView loadData:imageData MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];

我从here找到了解决方案。

现在的问题是图像的位置。请参阅下面的屏幕截图。 UIWebView框架是(20,20,280,280)。但图像位于左上方,其内容大小。

如何使此图像缩放以适合UIWebView框架?我试过“scalesPageToFit = YES”和“contentMode = UIViewContentModeScaleAspectFit”,不能正常工作。也许在html中指定一些东西?请帮忙。

enter image description here

1 个答案:

答案 0 :(得分:1)

实际上,有几种方法可以在imageview中使用动画GIF,我认为它比仅仅为此目的使用webView要好得多。

我个人使用SDWebImage,可以很容易地与可可豆荚一起使用。请参阅:https://github.com/rs/SDWebImage

将SDWebImage集成到您的项目后,只需导入此标题:

#import "UIImage+GIF.h"

然后像这样设置gif图像:

self.imageView.image = [UIImage sd_animatedGIFNamed:@"loading"] //loading.gif it's a gif image inside the project bundle

如果您仍然坚持使用网页浏览,这是调整图片内部图片的唯一方法,那就是使用javascript。

使用javascript选择图像并编辑其高度和宽度属性。您可以使用以下函数在webView中运行javascript代码:

 [self.webView stringByEvaluatingJavaScriptFromString:@"-javascript code here-"];

所以,在你的情况下,它将是这样的:

[self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('img')[0].style.width = '280px'"];

[self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('img')[0].style.height = '280px'"];