0

如果应用程序仅支持横向模式,通过单击项目摘要中的图标指定,然后在

- (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应用程序的规则是它总是首先以纵向模式布局,然后如果想要横向模式则调整大小/重新布局?

4

1 回答 1

-2

尝试将此方法设置为自动调整界面:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return (interfaceOrientation != UIInterfaceOrientationPortrait);

}
于 2012-09-01T00:16:17.557 回答