在iOS 5.1.1中,我发现如果我创建了我的UIWindow(我厌倦了IB),并将其框架设置为[UIScreen mainScreen] .bounds,则窗口会在状态栏下显示 。但是,如果我做同样的事情是iOS 6,它会出现在状态栏正下方的正确位置。
CGRect r = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame: r];
self.detailViewController = [[DetailViewController alloc] init];
self.window.rootViewController = self.detailViewController;
[self.window addSubview: detailViewController.view];
[self.window makeKeyAndVisible];
但是,如果我插入r.origin.y + = 20,要将窗口移动到iOS 5.1.1中的状态栏下方,这不能解决问题,只会变得更奇怪。
在以编程方式创建UIWindow时,在UI中放置UIWindow的正确方法是什么? 感谢。
答案 0 :(得分:2)
而不是[[UIScreen mainScreen] bounds]
,您需要使用[[UIScreen mainScreen] applicationFrame]
。这将是状态栏下方的屏幕区域(如果可见)。
答案 1 :(得分:0)
我想你可能需要这样做:
self.window.windowLevel = UIWindowLevelStatusBar + 1;