2

iOS5 iPadでアプリをプログラミングしています。

カスタム ビューのロードが終了したら、viewDidLoad で、次のようなプログラム ビューにアスペクトを設定する関数を呼び出します。

スイッチ (interfaceOrientation)
            {
                case UIDeviceOrientationPortrait:
                {
                    // self.view.bounds.size.height を使用して 3 つのビューのサイズを設定します
                    // と self.view.bounds.size.width
                    壊す;
                }
                case UIDeviceOrientationPortraitUpsideDown:
                {
                    // self.view.bounds.size.height を使用して 3 つのビューのサイズを設定します
                    // と self.view.bounds.size.width
                    壊す;
                }
                ケース UIDeviceOrientationLandscapeLeft:
                {
                    // self.view.bounds.size.height を使用して 3 つのビューのサイズを設定します
                    // と self.view.bounds.size.width
                    壊す;
                }
                ケース UIDeviceOrientationLandscapeRight:
                {
                    // self.view.bounds.size.height を使用して 3 つのビューのサイズを設定します
                    // と self.view.bounds.size.width
                    壊す;
                }

                デフォルト:
                    壊す;
            }

そして、shouldAutorotateToInterfaceOrientation でその関数を呼び出します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation が必要です
{
    [self setAspect:アスペクト];
    はいを返します。
}

アプリを回転すると、ビューが正しい位置に配置されますが、アプリを起動すると、iPad がランドスケープになっていると正しく動作しません。肖像画のサイズを取ります。デバイスを回転させれば問題は解決しますが、私のアプリではその問題が気に入りません。

なぜこれが起こっているのかわかりません.viewdidloadの呼び出しアスペクトが早すぎると読んだことがあります。setAspect 関数はどこで呼び出す必要がありますか?

4

1 に答える 1

1

今日も同じ問題がありました。

私は追加しなければならなくなりました: self.view.autoresizedSubviews = YES; Interface Builderで自動サイズ変更をチェックしていたにもかかわらず、viewDidLoadメソッドに。

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.view.autoresizesSubviews = YES;
}
于 2012-07-04T00:23:23.043 に答える