【发布时间】:2011-08-24 17:30:22
【问题描述】:
我正在尝试更改导航栏的颜色。以下 rgb 为深红色,但我的导航栏在以下代码后变为白色。
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117 green:4 blue:32 alpha:1];
【问题讨论】:
标签: iphone ios uinavigationcontroller uinavigationbar
我正在尝试更改导航栏的颜色。以下 rgb 为深红色,但我的导航栏在以下代码后变为白色。
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117 green:4 blue:32 alpha:1];
【问题讨论】:
标签: iphone ios uinavigationcontroller uinavigationbar
这是因为CGFloat 值的范围是0.0 to 1.0 而不是0 to 255,而高于1.0 的值被解释为1.0。
这里是文档:UIColor
【讨论】:
这样做:
navigationController.navigationBar.tintColor = [UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1];
【讨论】:
117/255.0f 这样它们就保持为浮点数。
你必须将每个值除以 255。试试:
[UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1]
【讨论】:
我发现,如果您来自网络或 Photoshop 之类的软件,则使用十六进制颜色会更容易。您可以为此使用此宏:
//RGB color macro
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
并像这样使用它:
self.navigationBar.tintColor = UIColorFromRGB(0xd8dadf);
【讨论】:
啊,这很有趣。真正的答案是 .tintColor 为导航控制器的导航项设置颜色(如“完成”按钮)。
【讨论】: