【发布时间】:2024-01-08 20:56:02
【问题描述】:
在 iOS8 中,在我的 viewController 的 viewDidLoad 方法中,我使用以下代码以编程方式设置主视图:
CGRect appRect = [[UIScreen mainScreen] applicationFrame];
rootView = [[RootView alloc] initWithFrame: appRect];
[self setView: rootView];
该应用程序仅在横向左侧模式下运行(我从应用程序的 plist 文件中控制它)。 这是视图设置后的样子:
即使应用程序处于横向模式,状态栏下方的白条也会显示为应用程序处于纵向模式。 有什么想法可能导致这种情况吗?
编辑: 运行这个:
NSLog(@"%@",NSStringFromCGRect([[UIApplication sharedApplication] statusBarFrame]));
输出:{{0, 0}, {1024, 20}}
编辑: 我为根视图添加了背景颜色:
rootView.backgroundColor = [UIColor greenColor];
这是应用程序现在的样子:
【问题讨论】:
-
@holex 谢谢,我试过了,看起来不错 {{0, 0}, {1024, 20}}。我更新了问题。所以状态栏没问题,但是白色区域看起来好像是纵向模式
-
您能否显示您设置“仅纵向”的位置的屏幕截图。
-
你的意思是plist配置的截图吗?它实际上只设置为横向:tinypic.com/r/5cr6g/8
-
对了。在您的问题中,您说“该应用程序仅在纵向模式下运行”。您应该在“部署信息”下的“构建设置”中设置“仅横向”,而不是在 plist 中。它们有点相同,但在可用时使用复选框。你能在 Xcode 中显示这个位的屏幕截图吗...i.stack.imgur.com/VHd1d.png
-
听起来您在编辑的 plist 和方向设置之间存在冲突设置。可能。