我试图用我自己的视图覆盖状态栏并且这样做我通过做类似的事情(也在旋转之后)为我的视图计算框架:
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构建我的应用程序时,在横向或颠倒启动应用程序时出现问题(如果应用程序以纵向方式启动,则工作正常)…
即.当我在颠倒时启动应用程序时,应该覆盖状态栏的自定义uiwindow将始终位于屏幕的底部,任何想法可能出错?
解决方法
如果没有其他信息,最好的解决方案就是隐藏状态栏.如果您仍然希望“状态栏”用于动画目的或其他原因,则此方案中的典型解决方案是通过调用来模拟它
– (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates on UIScreen
并使用返回的视图作为您要呈现的任何视图/窗口的背景.从iOS 9开始,没有公共方法可以让您获得指定的特定行为.