我为什么在这里弄错颜色?

时间:2014-01-05 23:02:03

标签: ios colors core-graphics uicolor

以下代码会生成纯红色正方形:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
    CGContextSetLineWidth(context, 5.0f);
    CGContextStrokeRect(context, rect);

}

但是下面的代码会产生一个白色正方形,而我所期望的是不同的红色阴影。谁能告诉我为什么会这样?

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    UIColor* boxColour = [UIColor colorWithRed:217 green:37 blue:70 alpha:1.0];
    CGContextSetStrokeColorWithColor(context, boxColour.CGColor);
    CGContextSetLineWidth(context, 5.0f);
    CGContextStrokeRect(context, rect);

}

1 个答案:

答案 0 :(得分:4)

colorWithRed:green:blue:alpha:类的UIColor方法采用0.0到1.0范围内的参数。您可能只需要将所有值(除了alpha)除以255.0f

UIColor* boxColour = [UIColor colorWithRed:217/255.0f green:37/255.0f blue:70/255.0f alpha:1.0f];

Apple Documentation