iPad横向模式在iOS7中显示黑条

时间:2013-09-20 14:06:34

标签: ios7 landscape xcode5

当我的应用程序在横向模式下出现时,会出现一个黑色条(与停靠点大小和位置相同),我的应用程序会被切断,当我旋转设备时它永远不会消失。 它在iOS 6中运行良好,我找不到任何解决方案。

2 个答案:

答案 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中的方框。

uncheck the Extend Edges Under Top Bars

答案 1 :(得分:-2)

只需重新调整面具大小。