IOS/objective-C : Convert standard UIColor to CGColor

标签 ios objective-c 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

最佳答案

你不能直接在 NSUserDefaults 中保存 UIColor 对象。

尝试存档对象以获取数据并像这样保存数据:

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

当你首先需要颜色时,你应该从 User Defaults 中获取 NSData 对象,然后像这样创建 UIColor 对象

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

关于IOS/objective-C : Convert standard UIColor to CGColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49416053/

相关文章:

iphone - GameKit wifi连接?

iphone - UIPageControl 不响应触摸,不改变点

ios - 手动从一种 UIColor 褪色到另一种

ios - 从委托(delegate)调用时未输入协议(protocol)方法

ios - self.property:初始化对象而不会发生内存泄漏

ios - 双segue tableView?

iphone - 获取某些 UIColor 的颜色分量时出现异常结果

ios - "Missing load commands"上传具有自己的静态框架和包的应用程序时的电子邮件

objective-c - 有趣的按钮

ios - 从 AnyObject 转换为 CGColor?没有错误或警告