iOS 6&7状态栏设计

问题描述:

我目前正在使用iOS 6应用程序。在iPhone 4/5上运行此应用程序运行良好。唯一的问题是,随着新的iOS 7出现,设计被破坏。状态栏现在是应用程序的一部分,我的应用程序中的所有视图都会推到顶部,与状态栏重叠。iOS 6&7状态栏设计

解决此问题的最佳解决方案是什么?我正在使用UINavigationController和一些自定义视图。做了一些阅读,有人建议我包含一个自定义容器视图来创建类似iOS 6'状态栏'的东西,因为顶部的视图是黑色和空白的。还有其他解决方案吗?或者,也许正确的方法来修复我的应用程序以支持iOS 6设计?

+0

尝试self.navigationController.navigationBar试试这个在您的AppDelegate.m。半透明= NO;在你的ViewController中。 –

+0

检查此链接http://stackoverflow.com/a/18886468/1160493 – wesley

+0

@EvgeniyS试过。似乎没有任何影响 – Azuan

有一个最简单的解决方案。我们必须谢谢苹果这个概念。

结帐从实用Inspector窗口4片

  • 下面

    1. 首先的解决方案,情节提要/厦门国际银行改变屏幕尺寸4" 根据设计安排您uicontrols(即开始制定下状态栏)
    2. 现在进入第五标签进入实用Inspector窗口
    3. 您必须帧的每个控制
    4. 打开你的眼睛框下并且您可以看到iOS6/7 Deltas
    5. 在DeltaY字段中,为每个控件减少20个像素。我的意思是在Delta Y字段中填写-20--
    6. 因此,现在用两个iOS7 & 6运行你的项目,你会得到你想要的。

    注:你必须有取消选中“使用自动布局”,以使用增量

    欣赏节目!

    Checkout Delta value for Y Position

  • +0

    我的Xcode 5中没有这样的东西!从未见过它,iOS 6/7 Deltas。你在检查什么UI对象? :S非常困惑 – ullstrm

    +0

    啊,刚刚找到它。如果您取消选中自动布局,则会显示。如何解决这个自动布局? :S – ullstrm

    +0

    用自动布局你不能。 – Ganapathy

    一个解决方案,让您可以:

    • 同时支持iOS6的和iOS7作为部署目标。
    • 保留现有的iOS6的风格的代码,并推迟了重新设计

    的影响。 。 。是将以下内容添加到您的视图控制器:

    #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) 
    { 
        self.edgesForExtendedLayout = UIRectEdgeNone; 
    } 
    

    。 。因为,我使用基于代码的意见,我添加它的loadView,但它也将在viewDidLoad中

    工作

    在didFinishLaunching

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
    
         [application setStatusBarStyle:UIStatusBarStyleLightContent]; 
    
         self.window.clipsToBounds =YES; 
    
         self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); 
    } 
    
    +0

    - 1为:状态栏不总是20px。在通话或记录事件超过20px。 (尝试使用cmd(或ctrl)+ T) –