我试图用我自己的 View 覆盖状态栏,为此我通过做类似的事情(也在旋转之后)来计算我的 View 的框架:
UIScreen *screen = [UIScreen mainScreen];
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
对于 iOS8+(因为 ios8 UIScreen
是方向依赖的):
CGRect frame = [screen.coordinateSpace convertRect:statusBarFrame toCoordinateSpace:screen.fixedCoordinateSpace];
[self setFrame:frame];
对于 iOS7:
[self setFrame:statusBarFrame];
它适用于 iOS8 及以下版本,但在使用 Xcode 7 beta 4 和 iOS 9 SDK 构建我的应用程序时,在横向或倒置启动应用程序时出现问题(如果应用程序以纵向启动则工作正常)...
即。当我在 Upsidedown 启动应用程序时,应该覆盖状态栏的自定义 uiwindow 将始终出现在屏幕底部,有什么想法可能是错误的吗?
最佳答案
如果没有其他信息,最好的解决方案是简单地隐藏状态栏。如果你仍然想要“状态栏”用于动画目的或其他一些原因,这种情况下的典型解决方案是通过调用来模拟它
-
UIScreen
上的 (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
并使用返回的 View 作为您呈现的任何 View /窗口的背景。从 iOS 9 开始,没有公共(public)方法可以让您获得指定的特定行为。
关于objective-c - iOS9 用自定义 uiwindow 覆盖状态栏 - 错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31581526/