快速的barTintColor

时间:2014-11-06 16:23:20

标签: ios swift uicolor

如果我拥有的是十六进制颜色,更改导航栏颜色的最佳方法是什么:#292e3f

它的工作很好用这样的东西:

UINavigationBar.appearance().barTintColor = UIColor.blueColor()

但是我无法弄清楚如何插入一个十六进制,我试着在这个网站上使用:

http://www.touch-code-magazine.com/web-color-to-uicolor-convertor/

但似乎有效:

var navBarColor = UIColor (red:0.161,green:0.18,blue:0.247,alpha:1.0)
UINavigationBar.appearance().barTintColor = navBarColor

2 个答案:

答案 0 :(得分:4)

您可以创建自己的自定义十六进制扩展来轻松完成此操作。例如,这样的事情可能有用:

extension UIColor {
     convenience init(hex: Int) {
            let r = hex / 0x10000
            let g = (hex - r*0x10000) / 0x100
            let b = hex - r*0x10000 - g*0x100
            self.init(red: CGFloat(r)/255, green: CGFloat(g)/255, blue: CGFloat(b)/255, alpha: 1)
        }
}

然后你可以这样称呼它:

UINavigationBar.appearance().barTintColor = UIColor(hex: 0x292e3f)

获取所需的十六进制颜色。

答案 1 :(得分:1)

如果您能够这样做,您可能会发现使用向UIColor添加十六进制支持的众多类别之一更容易。 Github上有很多Objective-C实现,粗略的搜索也发现了一个Swift:

https://github.com/yeahdongcn/UIColor-Hex-Swift