2013-09-26 79 views
0

我目前正在使用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

回答

1

有一個最簡單的解決方案。我們必須謝謝蘋果這個概念。

結帳從實用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

    1

    一個解決方案,讓您可以:

    • 同時支持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中

    工作
    -1

    在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) –