8
我有兩個UIColor實例並希望使用它們來創建漸變。代碼工作,但它給了我,當我打電話arrayWithObject:
構造一個警告:我如何在CGGradient中舒服地使用NSArray中的CGColor
警告:語義問題:不兼容 指針類型發送「CGColorRef」 (又名「結構CGColor *」),以參數類型的 'id'
我懷疑有潛在的其他問題與警告有關(例如泄漏)。下面是摘錄:
UIColor *startColor, *endColor;
// ...
NSArray *colors = [NSArray arrayWithObjects:
startColor.CGColor, endColor.CGColor, nil];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace,
(CFArrayRef) colors, NULL);
我如何重寫代碼以一種安全的方式擺脫這一警告的?
- 我試着手動創建一個CGArrayRef,但是在一段時間後有點討厭。
- CGGradientCreateWithColorComponents的作品,但我不喜歡所有顏色分量手動合併成一個
CGFloat components[]
你可以使用'CAGradientLayer *梯度= [CAGradientLayer層] ; gradient.frame = view.bounds; gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor],(id)[[UIColor whiteColor] CGColor],nil];' – visakh7 2011-05-10 09:56:58
@ 7KV7,我不這麼認爲。我在drawRect中使用它來創建我的填充形狀(這是一個非矩形多邊形btw)。 – 2011-05-10 09:59:05
也是UIColor * startColor,endColor;應該是UIColor * startColor,* endColor; – visakh7 2011-05-10 10:09:32