7

我试图用我自己的视图覆盖状态栏,为此我通过执行类似的操作(也在旋转之后)为我的视图计算框架:

UIScreen *screen = [UIScreen mainScreen];
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;

对于 iOS8+(因为 ios8UIScreen依赖于方向):

CGRect frame = [screen.coordinateSpace convertRect:statusBarFrame toCoordinateSpace:screen.fixedCoordinateSpace];
[self setFrame:frame];

对于 iOS7:

[self setFrame:statusBarFrame];

它适用于 iOS8 及更低版本,但在使用 Xcode 7 beta 4 和 iOS 9 SDK 构建我的应用程序时,在横向或倒置启动应用程序时出现问题(如果应用程序以纵向启动,它工作正常)...

IE。当我在Upsidedown时启动应用程序时,应该覆盖状态栏的自定义uiwindow总是会出现在屏幕的底部,有什么想法可能有问题吗?

4

1 回答 1

0

如果没有其他信息,最好的解决方案是简单地隐藏状态栏。如果出于动画目的或其他原因仍需要“状态栏”,则此场景中的典型解决方案是通过调用来模拟它

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdatesUIScreen

并将返回的视图用作您呈现的任何视图/窗口的背景。从 iOS 9 开始,没有公共方法可以让您获得您指定的特定行为。

于 2016-08-04T02:07:12.917 回答