UIColor没有给出预期的颜色

时间:2014-03-13 19:38:57

标签: ios

我想将导航栏色调颜色设置为RGB(255,80,30),如附图所示。但是当我执行模拟器时,我得到了不同的颜色。 Photoshop color properties comparison

这是我在视图控制器中的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    UIColor *backgroundColor = [Theme colorProperty:BACKGROUND_COLOR
                                        fromTabMenu:CALENDAR];
    CGFloat redvalue, greenvalue, bluevalue, alphavalue;
    [backgroundColor getRed:&redvalue green:&greenvalue blue:&bluevalue alpha:&alphavalue];

    NSLog(@"red:%f, green:%f, blue:%f, alpha:%f", redvalue*255.0, greenvalue*255.0, bluevalue*255.0, alphavalue*255.0);

    [self.tabBarController.tabBar setTintColor:backgroundColor];
    [self.navigationController.navigationBar setBarTintColor:backgroundColor];
}

我在控制台输出中得到以下值。

2014-03-14 04:37:49.404 planner[46712:70b] red:255.000000, 
                                         green:80.000003, 
                                          blue:30.000000, 
                                         alpha:255.000000

如您所见,我设置了正确的R G B值,但我无法获得预期的颜色。这有什么问题?

3 个答案:

答案 0 :(得分:3)

将导航栏设置为不是半透明的。您的viewDidLoad方法应如下所示:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    UIColor *backgroundColor = [Theme colorProperty:BACKGROUND_COLOR
                                        fromTabMenu:CALENDAR];
    CGFloat redvalue, greenvalue, bluevalue, alphavalue;
    [backgroundColor getRed:&redvalue green:&greenvalue blue:&bluevalue alpha:&alphavalue];

    NSLog(@"red:%f, green:%f, blue:%f, alpha:%f", redvalue*255.0, greenvalue*255.0, bluevalue*255.0, alphavalue*255.0);

    [self.tabBarController.tabBar setTintColor:backgroundColor];
    [self.navigationController.navigationBar setBarTintColor:backgroundColor];

    // Set to NOT translucent.
    [self.navigationController.navigationBar setTranslucent:NO];
}

答案 1 :(得分:1)

颜色显得更亮,因为导航栏很可能将translucent属性设置为YES(iOS 7中的默认行为)。因为它略微透明,所以当在白色背景前呈现时颜色看起来更轻。要解决此问题,请设置self.navigationController.navigationBar.translucent = NO

答案 2 :(得分:1)

正如实验一样,将UIView设置为此[UIColor colorWithRed:1.000000F green:0.313725F blue:0.117647F alpha:1.0F],这就是您正在寻找的确切RGB,我之所以说UIView是因为没有样式或色调应用于那里,您可以确定是否photoshops颜色设置与iOS不同。

<强>更新

将背景设置为RBG颜色时,不会呈现photoshop显示的相同颜色。

更新2

我不是这方面的专家,但我知道Photoshop可以针对具有不同颜色设置的不同媒体(发布,网络,设备等)进行设置,也许可以看一下。在应用商店中获取Color Maker以确认您的颜色。

Color Maker