2015-09-25 138 views
1

我在xCode中遇到了一些問題。我試圖讓我的導航欄着色完美,但狀態欄也不會改變他的顏色。我已經搜索,但沒有爲我工作。iOS 9導航欄瓷磚背景

我希望這是可能做到這一點無需代碼。 謝謝!

回答

2

這是我對這個:

首先,iOS版給人只有兩種狀態欄外觀 - 光或默認。 重要的是要注意,系統狀態欄不再有 有任何背景色。當API是指 UIStatusBarStyleLightContent,他們的意思是在一個晴朗的 白字的文本。 UIStatusBarStyleDefault是背景上清晰的 黑色文字。

要設置狀態欄白色整個應用程序:

UIApplication.sharedApplication().statusBarStyle = .LightContent 

要設置狀態欄黑色整個應用程序:

UIApplication.sharedApplication().statusBarStyle = .default 

,作爲一個方面說明,在你info.plist,你可以使用UIViewControllerBasedStatusBarAppearanceNO,如果您想在應用級別設置上述樣式(在AppDelegate內)。否則,此屬性設置爲YES並在每個實施下列方法您的視圖控制器根據您的需求來設置不同的樣式:

override func preferredStatusBarStyle() -> UIStatusBarStyle { 
    return UIStatusBarStyle.LightContent 
} 

,將您的狀態欄上的自定義顏色,你可以添加一個UIView只是在狀態欄這樣低於所需顏色:

UIView *addStatusBar = [[UIView alloc] init]; 
addStatusBar.frame = CGRectMake(0, 0, screenWidth, 20); 
addStatusBar.backgroundColor = [UIColor grayColor]]; //assign here your color 
[self.window.rootViewController.view addSubview:addStatusBar]; 

,重要的是,UINavigationController將改變其UINavigationBar要麼44 POIN的高度TS或64點基於以下幾點:

  • 如果UINavigationController的檢測到它的視圖的 框架的頂部是與它的UIWindow頂級視覺上連續的,那麼它繪製 其導航欄具有64點的高度。
  • 如果其視圖頂部與UIWindow頂部不連續(即使僅關閉了一個點),然後以「傳統」方式繪製其導航欄,高度爲44點。