0

我正在尝试以这种方式为我的 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”。我该如何解决这个问题?

4

2 回答 2

7

看到您的另一个问题,我建议您停下来一个小时并阅读一些文档,而不是简单地尝试在不理解或学习任何东西的情况下敲定自己的方式。

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

CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextSetStrokeColorWithColor(context,[color CGColor]);
于 2013-01-22T17:43:56.710 回答
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
于 2013-01-22T17:44:21.837 回答