首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >barTintColor在斯威夫特

barTintColor在斯威夫特
EN

Stack Overflow用户
提问于 2014-11-06 16:23:20
回答 2查看 1.6K关注 0票数 1

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

它的工作很好,就像这样:

代码语言:javascript
复制
UINavigationBar.appearance().barTintColor = UIColor.blueColor()

但我不知道如何插入一个十六进制,我尝试了我们在这个网站:

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

但它似乎起作用了:

代码语言:javascript
复制
var navBarColor = UIColor (red:0.161,green:0.18,blue:0.247,alpha:1.0)
UINavigationBar.appearance().barTintColor = navBarColor
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-06 16:30:24

您可以创建您自己的自定义十六进制扩展,以实现这一点相当容易。例如,类似这样的事情可能会奏效:

代码语言:javascript
复制
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)
        }
}

然后你可以这样称呼它:

代码语言:javascript
复制
UINavigationBar.appearance().barTintColor = UIColor(hex: 0x292e3f)

才能得到你想要的六角色。

票数 4
EN

Stack Overflow用户

发布于 2014-11-06 16:25:32

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26784334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档