12

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

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

但是我收到一个错误,说我的论点太少。

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

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

4

3 回答 3

40

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

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

然后,当需要将其用作填充颜色时,您可以这样做:

CGContextSetFillColorWithColor(ctx, color.CGColor);

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

于 2011-11-26T06:33:06.187 回答
1

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

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

其中每个颜色分量是 0.0 到 1.0 之间的某个分数。

为什么要使用 NSString?

这是 Apple 网站上的文档

于 2011-11-26T06:26:41.820 回答
0

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

您可能对CGColor类感兴趣,或者在 iOS 上特别是UIColor

或者我可以直接将参数输入到 CGContextSetRGBFillColor ...</p>

这是将参数输入到CGContextSetRGBFillColor.

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

那没有意义。带来什么?

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

于 2011-11-26T06:54:55.360 回答