RGB颜色不正确?

时间:2013-11-23 22:37:53

标签: ios objective-c cocoa-touch uiview uicolor

我有一个非常简单的方法来设置r,g和b颜色。它是以下内容:

-(void)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue{
    r = red;
    g = green;
    b = blue;

    NSLog(@"R: %f, G: %f, B: %f",r,g,b);
}

r,g,b和o(不透明度)是uiview的自定义子类中的float属性。我使用draw rect,如下所示:

CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), r, b, g, o);

当我调用方法时,我这样做:

[self.drawingBox colorWithRed:255.0/255.0 green:59.0/255.0 blue:48.0/255.0];
NSLOG: R: 1.000000, G: 0.231373, B: 0.188235

这样可以正常工作并返回我绘制的红色。

不幸的是,每当我调用其他任何东西时,它都不会返回所需的颜色,即使它正在记录正确的颜色。例如,

[self.drawingBox colorWithRed:255.0/255.0 green:149.0/255.0 blue:0.0/255.0];

当它实际上应该是橙色时返回紫色。当它被nslogged时,这就是橙色的日志:

R: 1.000000, G: 0.584314, B: 0.000000

为什么第二次返回紫色而不是橙色(nslog是正确的颜色)的任何想法?

1 个答案:

答案 0 :(得分:1)

您正以错误的顺序将参数传递给CGContextSetRGBStrokeColor。试试这个:

CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), r, g, b, o);