簡體   English   中英

如何在帶有CGGradient的NSArray中輕松使用CGColor

[英]How do I comfortably use CGColor in an NSArray with CGGradient

我有兩個UIColor實例,並希望使用它們創建一個漸變。 代碼可以工作,但是當我調用arrayWithObject: constructor時它會給我一個警告:

警告:語義問題:不兼容的指針類型將'CGColorRef'(又名'struct 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[]

試試這個

UIColor *startColor, *endColor; 
   // ...
   NSArray *colors = [NSArray arrayWithObjects:
                      (id)startColor.CGColor, (id)endColor.CGColor, nil];
   CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, 
                     (CFArrayRef) colors, NULL);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM