2013-05-22 8 views
7

iphoneアプリでは、インターネットからダウンロードした画像をプレビューしたいと思っているwebviewがありますが、一部の画像がフレームに収まるように表示されないという問題がありますwebviewの、しかしほとんどが行う。私はこれは、それらの画像が大きすぎるという事実によると思います。何か間違っているのですか?助けてくださいUIWebViewのプロパティscalesPageToFit = YES大きな画像で正しく動作しない

私が欲しいのは、単にです。webviewのフレームに合うようにwebviewで画像を読み込みます。あなたは私にいくつかの他のコードを提供することができますが、イメージビューではなくwebviewに関する必要があります。

ここに私が使用しているコードがあります。

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]; 

プラスここでは、出力のスクリーンショットであるOutput Screenshot

+0

誰かがAmmar'sと同じ行でより良い答えを望んでいる場合:http://stackoverflow.com/a/4670989/1861181 – Morkrom

答えて

0

画像スタイル属性

でこれらのスタイルプロパティと遊ぶ、次のコード

<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(カスケード接続スタイルシート)スタイリングしたい、WebViewのためのHTMLコンテンツを使用してみてください

最大幅、最小幅、幅、最大高さ、最小の高さ&高さ

+0

OKですが、iOSのどこに行けばいいですか?どのように実装されていますか? – Morkrom

4

まずチェックし、怒鳴るなどのviewDidLoad:UIWebViewの設定フレーム..

webView.frame = self.view.frame; 
(明確にスクロールインジケータは画像がWebViewのの枠に収まらない、すなわち表示されます)

このデリゲートメソッドを使用した後に、scalesPageToFitプロパティを次のように設定します。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    webView.scalesPageToFit = YES;//set here 
    return YES; 
} 
+1

私はこれを試しましたが、同じ問題が発生します – iMemon

+0

@iMemonこの答えを見て、それも試してみてくださいhttp://stackoverflow.com/questions/2350135/uiwebview-wont-zoom-even-after-setting-scalespagetofit-to-yes :) –

1

このsoluti Ammar Hasanの答えに基づいています。今すぐ画像をWeb表示がより少ない場合でも、Web表示の幅にスケーリングさ

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]; 

:代わりに元...

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

の...あなたはこれを行うことができますイメージの幅の半分です。これは、UIWebViewが別途課す制限のようです。私が望んでいたユーザーは画像を拡大縮小することができます。ビューポートのメタタグにminimum-scalemaximum-scaleを追加することで上書きすることができます。

関連する問題