如何在CGContextSetRGBFillColor中输入参数?

时间:2011-11-26 06:20:22

标签: ios core-graphics arguments multiview

我试图使用数据类型输入CGContextSetRGBFillColor的参数。例如:

NSString *colorcode = ctx, 0, 1, 0, 0; 
CGContextSetRGBFillColor(colorcode);

但我得到一个错误,说我的论点太少了。

我想根据用户的操作更改发送到(ctx, 0, 1, 0, 1 )的{​​{1}}参数。

我想使用数据类型输入CGContextSetRGBFillColor的参数,因为它的值是在单独的视图控制器中设置的。或者我可以直接将参数输入CGContextSetRGBFillColor然后将其带到另一个视图控制器来使用它吗?

3 个答案:

答案 0 :(得分:40)

尝试使用UIColor对象存储用户选择的颜色。你可以创建一个这样的:

UIColor *color = [UIColor colorWithRed:0 green:1 blue:0 alpha:0];

然后,当它用作填充颜色时,你可以这样做:

CGContextSetFillColorWithColor(ctx, color.CGColor);

我应该提一下,如果你使用ARC,你需要适当地保留和释放颜色。

答案 1 :(得分:1)

听起来你真正需要做的是:

CGContextSetRGBFillColor (ctx, 0.0f, 1.0f, 0.0f, 1.0f);

其中每种颜色成分的分数在0.0到1.0之间。

为什么使用NSString?

Here is the documentation on Apple's website

答案 2 :(得分:0)

  

我想使用数据类型输入CGContextSetRGBFillColor的参数,因为它的值是在单独的视图控制器中设置的。

您可能对CGColor课程感兴趣,或者在iOS上专门感谢UIColor

  

或者我可以直接输入CGContextSetRGBFillColor ...

的参数

这是将参数输入CGContextSetRGBFillColor的唯一方法。

  

...然后把它带到另一个视图控制器来使用它?

这没有意义。结束了什么?

如果你想将颜色从一个视图控制器带到另一个视图控制器,最好通过创建一个颜色对象(CGColor或UIColor)来传递它。