2013-01-22 148 views
0

我试图颜色以这种方式设置为我CGContextSetRGBFillColor: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" 。我该如何解决这个问题?

回答

7

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

你的代码有问题:你正在传递一个UIColor并试图在一个以float为参数的函数中使用它。要么改变你的参数方法,要么使用不同的CoreGraphics函数,它可以接受UIColor(或者CGColor表示)。

CGContextSetFillColorWithColor(context, [color CGColor]); 
CGContextSetStrokeColorWithColor(context,[color CGColor]); 
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 
+0

BTW我与@skinnyTOD - 这些都是从阅读容易获得一点文件。 – Stavash