CGContextSetRGBFillColor参数太少

时间:2013-01-22 17:33:01

标签: ios xcode

我试图以这种方式为我的CGContextSetRGBFillColor设置一个颜色:

- (void) drawArrowWithContext:(CGContextRef)context atPoint:(CGPoint)startPoint withSize: (CGSize)size lineWidth:(float)width arrowHeight:(float)aheight andColor:(UIColor *)color
{   
CGContextSetRGBFillColor (context,color,color,color,1);
CGContextSetRGBStrokeColor (context, color.CGColor);

....
}

...但我在两种情况下都得到错误“参数太少,应该是5,是2”。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

看到你的另一个问题,我建议你停一小时并阅读一些文档,而不是简单地试图在没有理解或学习任何东西的情况下完成任务。

您的代码中存在问题:您正在传递UIColor并尝试在将浮点数作为参数的函数中使用它。要么为你改变params方法,要么使用不同的CoreGraphics函数,它可以接受UIColor(或者更确切地说是CGColor表示)。

CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextSetStrokeColorWithColor(context,[color CGColor]);

答案 1 :(得分:1)

来自文档:

void CGContextSetRGBFillColor (
   CGContextRef c,
   CGFloat red,
   CGFloat green,
   CGFloat blue,
   CGFloat alpha
);

您需要做的就是使用

拆分UIColor
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha