如果应用程序仅支持横向模式,通过单击项目摘要中的图标指定,然后在
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
然后如果在viewDidLoad
,我做
UIView *smallBox = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 300, 300)];
smallBox.autoresizingMask = UIViewAutoresizingFlexibleWidth;
smallBox.backgroundColor = [UIColor yellowColor];
[self.view addSubview:smallBox];
然后我拿着一个横向的物理 iPad 2,并从 Xcode 运行程序。黄色框实际上比 300px 宽得多。但这只有在纵向模式下首先将 300px 视为 300px,然后将其调整为固定的左右边距,使其宽度为 556px。(正如我添加的用于打印帧宽度的触摸处理程序中所确认的那样)。
但是该应用程序被配置为仅在横向模式下运行,那么为什么要调整大小呢?所以似乎iOS应用程序的规则是它总是首先以纵向模式布局,然后如果想要横向模式则调整大小/重新布局?