7

在一个 iphone 应用程序中,我有一个 webview,我想在其中预览一些从互联网下载的图像,我的问题是某些图像不适合 webview 的框架,但大多数都可以。我认为这是因为这些图像太大了。难道我做错了什么?请帮忙

我想要的只是在 webview 中加载图像以适应 webview 的框架。您可以为我提供一些其他代码,但需要关注 webview 而不是 imageview。

这是我正在使用的代码。

self.documentData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.folio3.com/corp/wp-content/uploads/2013/02/Entrance_A-3.jpg"]];
self.webView.scalesPageToFit = YES;
[self.webView loadData:self.documentData MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil];

另外这里是输出的屏幕截图(清楚地显示滚动指示器,即图像不适合 webview 的框架)输出截图

4

3 回答 3

4

首先检查并设置框架,UIWebView如下viewDidLoad:所示。

webView.frame = self.view.frame;

使用此 Delegate 方法并设置scalesPageToFit如下属性后..

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    webView.scalesPageToFit = YES;//set here
    return YES;
}
于 2013-05-22T05:54:47.537 回答
1

该解决方案建立在 Ammar Hasan 的答案之上。而不是原来的...

NSData *data = [NSData dataWithContentsOfURL:imageURL];
[self.webView loadData:data MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil];

...你可以这样做:

NSString *photoWrapper = [NSString stringWithFormat:@"\
 <html>\n\
    <head>\n\
        <meta name=\"viewport\" content=\"width=device-width\" />\n\
        <style type=\"text/css\">\n\
            body {\n\
                margin: 0;\n\
                padding: 0;\n\
            }\n\
            img {\n\
                width: 100%%;\n\
            }\n\
        </style>\n\
    </head>\n\
    <body>\n\
        <img src=\"%@\" />\n\
    </body>\n\
</html>\
", URL];
[self.documentView loadHTMLString:photoWrapper baseURL:nil];

现在图像被缩放到 web 视图的宽度,即使 web 视图小于图像宽度的一半,这似乎是 UIWebView 强加的限制。图像仍然可以由用户缩放,这是我想要的。您可以通过添加minimum-scalemaximum-scale到视口元标记来覆盖它。

于 2017-01-09T20:58:16.777 回答
0

尝试对 WebView 使用 html 内容,如以下代码

<html>
<head>
   <title>Title</title>
</head>
<body style='margin:0px; padding:0px;'>
   <img src='<your_image_url>' 
        style='max-width:320px; max-height:460px;' 
        alt='Your_Image_Name'/>
</body>
</html>

要使用 CSS(级联样式表)样式调整图像大小,请在图像样式属性中使用这些样式属性

最大宽度、最小宽度、宽度、最大高度、最小高度和高度

于 2013-05-22T07:04:55.717 回答