横向模式下的iOS 8状态栏背景方向

时间:2014-11-10 12:41:47

标签: ios ios8 uikit

在iOS8中,在viewController的viewDidLoad方法中,我使用以下代码以编程方式设置主视图:

CGRect appRect = [[UIScreen mainScreen] applicationFrame];
rootView = [[RootView alloc] initWithFrame: appRect];
[self setView: rootView];

应用程序仅以横向左侧模式运行(我从应用程序的plist文件中控制它)。 这是视图设置后的样子: enter image description here

即使应用处于横向模式,状态栏下方的白条也会显示为应用处于纵向模式。 关于可能导致这种情况的任何想法?

编辑: 运行这个:

NSLog(@"%@",NSStringFromCGRect([[UIApplication sharedApplication] statusBarFrame]));

输出:{{0, 0}, {1024, 20}}

编辑: 我为根视图添加了背景颜色:

rootView.backgroundColor = [UIColor greenColor];

这就是应用程序现在的样子: enter image description here

1 个答案:

答案 0 :(得分:1)

我的问题是在我的appdelegate中我的- (void)applicationDidFinishLaunching:(UIApplication *)application方法: 我没有设置根视图控制器。相反,我这样做:

viewController = [[BoardViewController alloc] init];
[window makeKeyAndVisible];
[window addSubview: [viewController view]];

一旦我改变了,根视图框覆盖了整个窗口,状态栏背景就是它应该是的位置:

viewController = [[BoardViewController alloc] init];
[window makeKeyAndVisible];
window.rootViewController = viewController;

我从这个答案中得到了这个想法:iOS 8 - Launching the application in Landscape mode