2012-07-08 7 views
5

私のUIWebViewに問題があります。ビューがロードされるとどちらかの方向に細かい負荷がかかり、ページ全体が完全に塗りつぶされます。UIWebViewのランドスケープ回転がビュ​​ーに表示されない

しかし、私はそれをポートレートで読み込んだ後、デバイスを回転させると、Webviewが右端にいっぱいに塗りつぶされません。なぜ私の人生のために理解することはできません。

この

は私が私が私が幅またはこれまでに何あなたがそれを呼び出すの拡大に設定することを可能にするパネルを見つけようとしていますインターフェイスビルダーで見れば私の見解は、loadメソッド

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib 

    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait){ 

     self.measurementsWebView.frame = CGRectMake(0, 0, 320, 367); 

    }else if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight){ 

     self.measurementsWebView.frame = CGRectMake(0, 0, 480, 218); 
    } 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"measurements" ofType:@"png"]; 
    [measurementsWebView loadHTMLString:[NSString stringWithFormat:@"<html><body><img src=\"file://%@\"></body></html>",path] baseURL:nil]; 
    measurementsWebView.scalesPageToFit = YES; 

} 

をしましたが、すべて私が見ることができますこれは。

enter image description here

任意の助けを大幅にインターフェイスビルダー、それはレイアウト長方形」と言い、それをクリックして、「フレーム矩形」を選択し、ドロップダウンメニューで

答えて

1

をいただければ幸いです。

また、ビューコントローラでwillAnimateRotationToInterfaceOrientation:メソッドをオーバーライドし、viewDidLoadのように手動で座標/サイズを設定することもできます。代わりに、手動でフレームを設定すると、あなたは自動リサイズマスクをも設定することができ

+0

奇妙なことに、私がメニューの外観を変更していなくても...私はxcodeを再インストールする必要があるかもしれないと思います。私は今shouldAutototateToInterfaceOrientationしようとします。しかし、それは水平ビューに合わせてUIViewフレームのサイズを変更します。 – HurkNburkS

+0

申し訳ありません、私は 'willAnimateRotationToInterfaceOrientation:'メソッドを書くつもりでした。 'viewDidLoad'メソッドでオリエンテーションをチェックしたのと同じように、ここでも同じことをして、ビューのフレームを調整します。 – sooper

+0

インターフェイスビルダーの問題については、この記事を読むことをお勧めします[ここ](http://stackoverflow.com/questions/9370072/xcode-4-3-not-presenting-autoresizing-panel-in-size-inspector ) – sooper

4

:あなたは、画面上の他の要素を持っていない場合にはWebViewのサイズを変更します

measurementsWebView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

(、I measurementsWebViewのサイズ変更時に使用した値から取得します)。または、まっすぐ以下の画像のようにペン先から:

auto-resize from nib

マスクは、左下の方に自動サイズ調整と呼ばれるボックス内の赤いバーをクリックすることで設定することができます。

3

viewDidLoad - ビューが読み込まれたときに1回実行されます。

回転が発生したときにフレームを手動で調整する場合は、コードを追加してviewDidLayoutSubviewsにサイズを変更します。これはビューが回転するたびに呼び出されます。

-(void)viewDidLayoutSubviews { 

    [super viewDidLayoutSubviews]; 

    self.measurementsWebView.frame = self.view.bounds; 

} 
+0

シンプルで簡単、これはありがとう – peroija

関連する問題