2013-01-22 147 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