5

UIWebView に問題があります。ビューが読み込まれると、どちらの向きでも読み込まれ、ページ全体が完全に埋められます。

ただし、ポートレートでロードしてからデバイスを回転させると、Webビューが右側までいっぱいにならず、一生理由を理解できません。

これは私の見解であり、読み込み方法です

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

}

インターフェイスビルダーを見ると、幅の拡大を設定できるパネルを見つけようとしていますが、これだけしか表示されません。

ここに画像の説明を入力

どんな助けでも大歓迎です

4

3 に答える 3

4

フレームを手動で設定する代わりに、自動サイズ変更マスクを次のように設定することもできます。

measurementsWebView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

これにより、画面上に他の要素がない場合にwebViewのサイズが変更されます(サイズ変更時に使用した値から、私はそれを取得しますmeasurementsWebView)。または、次の画像に示すように、ペン先からまっすぐに:

ペン先からの自動サイズ変更

マスクは、左下にある[自動サイズ設定]というボックスの赤いバーをクリックして設定できます。

于 2012-07-09T05:00:29.617 に答える
3

viewDidLoad一度実行されます - ビューがロードされたとき。

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

-(void)viewDidLayoutSubviews {

    [super viewDidLayoutSubviews];

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

}
于 2014-06-25T00:05:53.203 に答える
1

インターフェイス ビルダーで、[長方形のレイアウト] と表示されているドロップダウン メニューをクリックして、[長方形のフレーム] を選択します。

または、View Controller でメソッドをオーバーライドし、willAnimateRotationToInterfaceOrientation:で行ったように座標/サイズを手動で設定することもできますviewDidLoad

于 2012-07-09T00:00:16.017 に答える