代码之家  ›  专栏  ›  技术社区  ›  kmn

导航(和状态)条颜色与编程颜色不同(alpha自动设置为0.85)

  •  0
  • kmn  · 技术社区  · 6 年前

    目的

    我正在尝试将导航栏设置为灰色(RGB 33、33、33)。问题是,当我使用颜色时,我总是得到一个更浅的颜色:

    UIColor(red: 33/256, green: 33/256, blue: 33/256, alpha: 1)

    问题

    所以我不得不将颜色变暗到RGB 8、8、8才能工作(使用数字颜色计进行验证:获得我想要的(33、33、33)灰色)。

    代码

    我使用的代码如下:

        //  NAV BAR
        let navigationBarAppearace =  UINavigationBar.appearance()
        navigationBarAppearace.tintColor = UIColor.white
        navigationBarAppearace.barTintColor = UIColor(red: 0.03, green: 0.03, blue:0.03, alpha: 1)
        navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
    
        //  STATUS BAR APPEARANCE
        UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
    

    我发现了什么

    我已经使用xcode调试视图层次结构进行了调查,右键单击导航栏并按“打印说明”。

    enter image description here

    得到这个:

    <_UIVisualEffectSubview: 0x15422d1c0; frame = (0 0; 375 64); alpha = 0.85; autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x1d4224c60>>

    这意味着alpha已经设置为0.85(即使我从未显式地将其设置为该值),无论是在接口生成器中还是在代码中的任何地方。

    如果我想用与导航栏相同的颜色为任何其他视图着色,我使用:

    UIColor(red: 0.03, green: 0.03, blue: 0.03, alpha: 0.85) 相当于 UIColor(red: 8/256, green: 8/256, blue: 8/256, alpha: 0.85)

    (相同的rgb,alpha为0.85)

    问题

    如何删除导航栏上的0.85字母以在整个应用程序中使用相同的颜色值?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Parth Dhorda    6 年前

    只需编写以下代码

    navigationController.navigationBar.isTranslucent = false
    
    推荐文章