将CGcolorRef转换为UIColor

14
我想知道如何将 CGColorRef 转换为 UIColor?我已经创建了一个自定义方法,我需要它使用 UIColor。

编辑后的方法:

    - (void)fontColor:(CGColorRef)colors setString(NSSTring *)blah blah blah  {

    coreTextLayer.foregroundColor = color;


    }


[myClass fontColor:[UIColor redColor] setString....];

正确的方法是使用像这样的东西:

[UIColor redColor]CGColor];

但有没有仅使用UIColor的方法呢?

2个回答

33

+ (UIColor *)colorWithCGColor:(CGColorRef)cgColor不能满足您的需求吗?


后续问题:

尝试将您的方法实现为以下形式:

- (void)setFontColor:(UIColor *)color forString(NSString *)aString  {
    [coreTextLayer setForegroundColor:[color CGColor]];
    ...
}

(已调整以符合Cocoa命名约定,并且不使用点语法。 ;-)


实际上,这不仅仅是UIColor,我的方法类似于: - (void)fontColor:(CGColorRef)colors setString(NSSTring *)blah blah blah { - iOS.Lover
抱歉,我不明白你在这里想要实现什么。我的代码确实可以返回一个UIColor,只需要给出一个CGColorRef即可。你有什么疑虑吗? - Conrad Shultz
尽管您更新的代码似乎表明您想朝相反的方向前进,即[[UIColor redColor] CGColor] - Conrad Shultz
是的,我像这样使用它,但有没有可能只使用UIColor? - iOS.Lover
请查看我的更新答案,其中CGColor被降级为内部实现细节。 - Conrad Shultz

5

为什么不使用

  • (UIColor *)initWithCGColor:(CGColorRef)cgColor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接