5

在 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 时,在 iOS 中放置 UIWindow 的正确方法是什么?谢谢。

4

2 回答 2

2

而不是[[UIScreen mainScreen] bounds]你会想要使用[[UIScreen mainScreen] applicationFrame]. 这将是状态栏下方的屏幕区域(如果可见)。

于 2013-03-08T21:53:54.407 回答
0

我认为您可能需要这样做:

self.window.windowLevel = UIWindowLevelStatusBar + 1;
于 2013-02-09T00:44:43.920 回答