【问题标题】:iOS 9 Navigation Bar Tile BackgroundiOS 9 导航栏平铺背景
【发布时间】:2015-09-25 21:34:04
【问题描述】:

我在 XCode 中遇到了一些问题。我试图让我的导航栏颜色完美,但是状态栏也不会改变它的颜色。我已经搜索过了,但没有什么适合我。

我希望不用代码也能做到这一点。

【问题讨论】:

    标签: ios swift ios9


    【解决方案1】:

    这是我的看法:

    首先,iOS 只提供了两种状态栏外观——浅色或默认。 还需要注意的是,系统状态栏不再 有任何背景颜色。当 API 引用 UIStatusBarStyleLightContent,它们的意思是清晰的白色文本 背景。 UIStatusBarStyleDefault 是清晰的黑色文本 背景。

    将整个应用程序的状态栏设置为白色:

    UIApplication.sharedApplication().statusBarStyle = .LightContent
    

    在整个应用程序中将状态栏设置为黑色:

    UIApplication.sharedApplication().statusBarStyle = .default
    

    第二,附带说明,在您的info.plist 中,如果您想在应用程序级别设置上述样式(在您的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 点或 64 点:

    • 如果 UINavigationController 检测到其视图的顶部 框架与其 UIWindow 的顶部在视觉上是连续的,然后它绘制 它的导航栏高度为 64 磅。
    • 如果其视图的顶部与 UIWindow 的顶部不连续(即使 只差一点),然后它在 高度为 44 点的“传统”方式。

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多