0

これを使用して、モーダル ダイアログの幅と高さを変更しています

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterface {
     if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {

            self.view.superview.frame = CGRectMake(74, 170, 380.0f, 712.0f);

        }
}

作品は 1 つのself.view.superview.frame = CGRectMake(74, 170, 380.0f, 712.0f);風景で動作しますが、iPad を回転させると、y 位置が低すぎます。両方のランドスケープで同じ y 位置にある必要があります。

編集

これはうまくいきます。それが最良の答えかどうかはわかりません。より良い回答を受け入れます。

if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {

            self.view.superview.frame = CGRectMake(174, 170, 380.0f, 712.0f);
            self.view.superview.transform = CGAffineTransformTranslate(self.view.superview.transform,0,-72);

        }
4

1 に答える 1

0

ここで、PresentModalViewcontroller の助けを借りて提示される UIVIewcontroller について話している場合。ビュー コントローラーの高さと幅は変更しないでください。プレゼンテーション スタイルは、Apple によって提供され ます。

また、カスタム モーダルを作成する場合は、単純な UIView で CATransition を使用して遷移することで作成できます。

于 2013-04-24T08:08:28.673 に答える