【问题标题】:I can't set UINavigationBar's barTintColor to clearColor successfully我无法成功将 UINavigationBar 的 barTintColor 设置为 clearColor
【发布时间】:2013-11-02 00:11:52
【问题描述】:

关于 UINavigationBar,iOS 7 有一个奇怪的地方。如果您尝试将其 barTintColor 属性设置为 [UIColor clearColor] 或任何 alpha = 0 的颜色,它会完全忽略该值。例如,如果你写:

[[navigationBar setBarTintColor:[UIColor clearColor]];

它根本不尊重“明确”的部分。与colorWithRed:green:blue:alpha 的结果相同。

但最有趣的部分是,如果您将 translucent 属性设置为 NO,那么它将采用您指定的颜色,但带有 alpha 1。因此,如果我指定 colorWithRed:1 green:0 blue:0 alpha:0,它将被设置为纯红色alpha 为 1。

我怎样才能实现它?是否有任何可能的解决方案使其成为完全不可见的barTintColor,尽管它需要一些 hacky 方法?

【问题讨论】:

    标签: ios uinavigationbar bartintcolor


    【解决方案1】:

    如果您想要一个清晰的导航控制器,请尝试将导航控制器的背景图像设置为使用清晰的 PNG 文件(1x1 透明,无颜色)。

    【讨论】:

    • 太棒了!有用!一个细节是您甚至不需要创建这样的图像。相反,通过相关的方法将backgroundImage设置为[UIImage new]就可以了。
    • +1 谢谢。我设法让它工作,但我必须将translucent 设置为YES。没有这个,酒吧是黑色的。
    【解决方案2】:

    这对我有用

    navigationBar.translucent = true
    navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
    

    【讨论】:

    • 有效! Swift 5 看起来像:navigationBar.isTranslucent = true navigationBar.setBackgroundImage(UIImage(), for: .default)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多