2015-09-25 99 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点。