我正在为 ios 7 进行兼容性修改。我的应用程序视图正在为横向和 portiate 模式旋转。
但目前在 ios 7 中,状态栏覆盖到我的视图中。在所有旋转中。我尝试使用以下代码,但它不适用于我。
在我的 appDelegate 文件 appdidfinishlaunching 中,我设置了 1 个通知,如下所示:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidChangeStatusBarOrientation:)
name:UIApplicationDidChangeStatusBarOrientationNotification
object:nil];
}
这将冷方法如下:
- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification
{
int a = [[notification.userInfo objectForKey: UIApplicationStatusBarOrientationUserInfoKey] intValue];
int w = [[UIScreen mainScreen] bounds].size.width;
int h = [[UIScreen mainScreen] bounds].size.height;
switch(a){
case 4:
self.window.frame = CGRectMake(0,20,w,h);
break;
case 3:
self.window.frame = CGRectMake(-20,0,w-20,h+20);
break;
case 2:
self.window.frame = CGRectMake(0,-20,w,h);
break;
case 1:
self.window.frame = CGRectMake(20,0,w-20,h+20);
}
}
当我第一次启动我的应用程序状态栏时,我的视图被覆盖了。第二次当我旋转我的 iPad 时,它会在不同的位置设置状态栏黑色地面。每次我都错了。
请帮助我,我在上面做错了什么。
如果可能的话,请为我提供所有旋转的示例代码以停止状态栏覆盖。