我在 Interface Builder 中使用支柱和弹簧创建了一个 iPad 目标 UIView。一旦应用程序运行,自动调整大小就可以完美地工作,因为我改变了设备方向。但是在启动时,无论设备启动的方向如何,UIView 都有其横向大小(如在我的 xib 中绘制的那样)。如何让 autoresize 规则在 viewDidLoad 处触发,以便在用户启动时视图采用纵向形式设备处于纵向的应用程序?
谢谢!
我在 Interface Builder 中使用支柱和弹簧创建了一个 iPad 目标 UIView。一旦应用程序运行,自动调整大小就可以完美地工作,因为我改变了设备方向。但是在启动时,无论设备启动的方向如何,UIView 都有其横向大小(如在我的 xib 中绘制的那样)。如何让 autoresize 规则在 viewDidLoad 处触发,以便在用户启动时视图采用纵向形式设备处于纵向的应用程序?
谢谢!
setFrame 调用对我不起作用 - 因为简单地调用 mainViewController.view 会导致 viewDidLoad 在 setFrame 被处理之前被触发。
但是,在主视图控制器的 viewDidLoad 中,您可以在进行其他计算之前调用它:
[self.view setFrame:[[UIScreen mainScreen] applicationFrame]];
这实际上很容易。在您的 AppDelegate 中,只需向您的主视图控制器的视图发送一条消息以设置框架,如下所示:
[mainViewController.view setFrame:self.window.frame];