0

我正在使用它来更改模态对话框的宽度和高度

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

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

        }
}

作品将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。我们不应该改变视图控制器的高度和宽度。演示样式由苹果提供:http: //developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/c/econst/UIModalPresentationFormSheet

此外,如果您想创建自定义模式,您可以通过在简单 UIView 上使用 CATransition 进行转换来创建。

于 2013-04-24T08:08:28.673 回答