无法在iOS7中使用自定义RGBa设置barTintColor

时间:2014-01-01 02:08:55

标签: ios objective-c

我的viewDidLoad中有一个简单的代码,用于更改iOS7中导航栏的颜色:

if([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]){
        self.navigationController.navigationBar.barTintColor=  [UIColor colorWithRed:33 green:50 blue:86 alpha:1];
    }

当视图加载时,条形图完全变白。但如果我将其更改为:

self.navigationController.navigationBar.barTintColor=  [UIColor redColor];

它完美无缺。是不支持某些颜色,还是我做错了什么?

1 个答案:

答案 0 :(得分:5)

您必须将rgb颜色值除以255并转换为float,如下所示:

self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:33.0f/255.0f green:50.0f/255.0f blue:86.0f/255.0f alpha:1.0f];

通常我声明以下宏:

#define Color(r,g,b,a) [UIColor colorWithRed:(r/(float)255) green:(g/(float)255) blue:(b/(float)255) alpha:a] 

并以这种方式使用它:Color(33,50,86,1);