2

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

4

2 回答 2

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 语句来检测应用的屏幕方向(纵向、上下颠倒、横向左或横向右)并分别改变应用的窗口框架以创建 iOS 6 状态栏错觉。

这是在 iPhone 应用程序中引用@iOS 7 状态栏回到 iOS 6 默认样式?


或者:


如果您使用 Storyboards (iOS 5+) 并且不希望您的视图控制器与状态栏(和导航栏)重叠,请取消选中 Xcode 5.0 IB Storyboard 中的“Extend Edges Under Top Bars”框。

取消选中顶部栏下的延伸边缘

于 2013-09-20T14:14:08.020 回答
-2

只需要重新调整调整大小的蒙版。

于 2013-10-07T09:31:54.447 回答