【问题标题】:iOS: scale fit or fill a local image in a UIWebView?iOS:缩放适合或填充 UIWebView 中的本地图像?
【发布时间】:2013-07-26 14:06:23
【问题描述】:

我正在使用 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中指定一些东西?请帮忙。

【问题讨论】:

    标签: ios image uiwebview gif


    【解决方案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
    

    如果您仍然坚持使用 webview,这是在其中调整图像大小的唯一方法,那就是使用 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'"];
    

    【讨论】:

    • 我现在实际上正在使用 SDWebImage 进行缓存!不知道它支持gif。感谢您指出这一点。
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多