2014-01-12 54 views
0

我正在使用的應用程序具有自定義導航欄。在我的AppDelegate.m中,我做了以下操作:自定義導航欄,與iOS6的按鈕兼容性問題

  • setBackgroundImage已將導航欄的默認顏色替換爲我自己的.png圖像之一;
  • setTitleTextAttributes:已被設置爲白色;
  • setTintColor:已設置爲白色;

    - (void)customizeUserInterface { 
        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault]; 
        [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, nil]]; 
        [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 
    } 
    

一切看起來都在iOS中7得很好,但在運行iOS 6中的導航欄按鈕是白色的白,因爲雖然色調的顏色變化的iOS 7的按鈕上的文字設備(因爲這就是所有按鈕都在iOS 7中 - 文本),在iOS 6中設置色調顏色調整按鈕的背景,並且文本保持白色。所以在iOS 6中,導航欄按鈕是白色的,並帶有白色文本。

我很喜歡我的表在iOS 7中的表現,而不是僅僅因爲與iOS 6的向後兼容性不合作而改變它。

有沒有人有解決這個問題。有沒有辦法以編程方式更改導航欄圓形記錄按鈕的背景顏色或只是圓形記錄按鈕中的文本 - 所有這些都不會改變iOS 7中的外觀?

或者有辦法有條件地設置這些更改嗎?換句話說,我可以以編程方式將自定義導航欄設置爲僅顯示iOS 7+以上的設備,並且在此之前對所有iOS版本使用默認設置?

或者還有什麼別的東西我沒有想到呢?

謝謝!

+0

在customizeUserInterface方法中,我會推薦一個大的if/else if語句來測試設備的版本。如果是iOS 7,請執行此操作,但如果是iOS 6,請執行此操作。 – erdekhayser

回答

0

嘿,這是真的有可能以編程方式控制你的東西。你有你的方式來做到這一點ios7 &絕對你已經做了ios6。

這裏是link來檢查版本。

現在你可以有條件地做事情。

希望有所幫助。

+0

太好了,我懂了。謝謝! –