当我的应用程序在横向模式下出现时,会出现一个黑色条(与停靠点大小和位置相同),我的应用程序会被切断,当我旋转设备时它永远不会消失。 它在iOS 6中运行良好,我找不到任何解决方案。
答案 0 :(得分:0)
对于屏幕旋转的应用
使用NSNotificationCenter通过添加
来检测方向更改[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidChangeStatusBarOrientation:)
name:UIApplicationDidChangeStatusBarOrientationNotification
object:nil];
in if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
并创建一个新方法
- (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);
}
}
AppDelegate中的
这样当方向改变时,它会触发一个switch语句来检测应用程序的屏幕方向(Portrait,Upside Down,Landscape Left或Landscape Right)并分别改变应用程序的窗口框架以创建iOS 6状态栏错觉。
这是引用@ iOS 7 status bar back to iOS 6 default style in iPhone app?
可替换地:
如果您使用的是故事板(iOS 5+)并且不希望视图控制器与状态栏(和导航栏)重叠,请取消选择"在顶栏下延伸边缘" Xcode 5.0 IB Storyboard中的方框。
答案 1 :(得分:-2)
只需重新调整面具大小。