2011-11-26 32 views
12

我正在嘗試使用數據類型輸入CGContextSetRGBFillColor的參數。例如:如何向CGContextSetRGBFillColor輸入參數?

NSString *colorcode = ctx, 0, 1, 0, 0; 
CGContextSetRGBFillColor(colorcode); 

但是我收到一個錯誤,說我的參數太少。

我想根據用戶的操作將發送到CGContextSetRGBFillColor的參數(ctx, 0, 1, 0, 1)更改。

我想輸入參數CGContextSetRGBFillColor使用數據類型,因爲它的值設置在一個單獨的視圖控制器。或者,我可以直接輸入參數到CGContextSetRGBFillColor,然後將其帶到另一個視圖控制器來使用它?

+0

如果您處理當前'CGContext',則可以使用'UIColor'類的'setFill'方法;) – DanSkeel

回答

1

聽起來像你真正需要做的是:

CGContextSetRGBFillColor (ctx, 0.0f, 1.0f, 0.0f, 1.0f); 

,其中每個顏色分量是0.0和1.0之間的一些部分。

你爲什麼使用NSString?

Here is the documentation on Apple's website

40

嘗試使用UIColor對象來存儲用戶選擇的顏色。你可以創建一個這樣的:

UIColor *color = [UIColor colorWithRed:0 green:1 blue:0 alpha:0]; 

然後當它的時候使用它作爲填充顏色,你可以這樣做:

CGContextSetFillColorWithColor(ctx, color.CGColor); 

我應該指出,如果你是使用ARC ,您需要適當地保留和釋放顏色。

0

我想使用數據類型輸入CGContextSetRGBFillColor的參數,因爲它的值是在單獨的視圖控制器中設置的。

您可能會喜歡CGColor類,或者在iOS上,特別是在UIColor

,或者可以我直接輸入參數CGContextSetRGBFillColor ...

這是輸入的唯一方法參數CGContextSetRGBFillColor

...然後把它帶到另一個視圖控制器來使用它?

這沒有意義。帶來什麼?

如果要將顏色從一個視圖控制器帶到另一個視圖控制器,最好通過創建一個顏色對象(CGColor或UIColor)來完成,並傳遞該顏色對象。

+0

讓視圖控制器負責顏色選擇器視圖,並在另一個控制器視圖中使用拾取的顏色,是合理的。 –

+0

@robmayoff:夠公平的。我會從我的答案中刪除那一點。 –