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