簡體   English   中英

iOS / Objective-C:將標准UIColor轉換為CGColor

[英]IOS/Objective-C: Convert standard UIColor to CGColor

我在另一個類的NSUserDefault中設置了一種顏色,現在想將其轉換為CGColor進行顯示。 我可以將實際的UIColor轉換為CGColor。 但是我無法將存儲在變量中的UIColor轉換為CGColor

UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;
circleColor=[[UIColor greenColor]CGColor];//this works 
circleColor=[[myColor] CGColor];//does not work
circleColor=[myColor CGColor];//does not work

有人可以建議正確的方法嗎?

注意:由於需要橋接,我沒有在userdefaults中保存cgcolor

更換

circleColor = [[myColor] CGColor];//does not work

circleColor = myColor.CGColor;

編輯

如果尚未將UIColor保存在NSUSerDefaults請檢查此答案以獲取有關如何正確存儲和檢索它的示例。

您不能將UIColor對象直接保存在NSUserDefaults中。

嘗試歸檔對象以獲取數據並保存數據,如下所示:

UIColor *color = [UIColor redColor];
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color];
[[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"ColorKey"];

當您首先需要顏色時,應從“用戶默認值”中獲取NSData對象,然后創建如下的UIColor對象

NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"ColorKey"];
UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];

我認為您尚未在這一行中創建myColor對象。

UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;

首先初始化該對象,然后使用您的user defaults分配給該對象,然后進行相應處理。

暫無
暫無

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

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