ios – 从故事板设置的UINavigationBar背景颜色与代码设置的颜色不同

前端之家收集整理的这篇文章主要介绍了ios – 从故事板设置的UINavigationBar背景颜色与代码设置的颜色不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序仅适用于iOS 8,我正在使用XCode 6.1.1.

如果我通过故事板设置颜色(在导航栏部分设置“棒色调”属性)

所需的颜色是:

56 186 145

我使用Core coding utilities获取我的颜色的浮动值.

代码

let backgroundColor = UIColor(red: 0.22,green: 0.729,blue: 0.569,alpha: 1.0)
self.navigationController!.navigationBar.barTintColor = backgroundColor
self.navigationController!.navigationBar.translucent = false

通过故事板设置的颜色与原始RGB相同.

>按代码

>按故事板:

编辑

我尝试使用let backgroundColor = UIColor(红色:0.255,绿色:0.769,蓝色:0.635,alpha:1.0)和来自故事板的rgb:65 196 162基于@siejkowski评论,但我得到以下颜色:

>按代码

>按故事板:

为什么?

解决方法

您观察到的颜色差异有两个原因.

> Storyboard中设置的值是RGB(sRGB IEC61966-2.1)类型,当您按RGB值编码UIColor时,它将返回RGB(通用RGB)值.

因此,当您从Storyboard更改颜色时,RBG类型的值会有所不同.在Storyboard中获取RGB滑块的精确RGB值更改类型.

单击“设置”图标,该图标与RGB滑块选项完全相同.它将显示一个弹出菜单 – 选择Generic RGB选项.

现在,您可以观察RGB值的图像

56 186 145

现在改为

49 175 126

所以这些是编码的欲望值.

>综述问题:

代码中,您传递给出参数的向上舍入值,如下面一行

UIColor(red: 0.22,alpha: 1.0)

因此,它会对颜色代码的每个像素进行一次小的更改.我建议你将这个值除以255并对编译器进行向上计算.这将为您提供所需的颜色准确性.

所以现在对于新值,更新代码将是:

let backgroundColor = UIColor(red: 49.0/255.0,green: 175.0/255.0,blue: 126.0/255.0,alpha: 1.0)
self.navigationController!.navigationBar.barTintColor = backgroundColor
self.navigationController!.navigationBar.isTranslucent = false

猜你在找的iOS相关文章