UIColor和CGColor之间的奇数转换

时间:2014-03-17 16:09:33

标签: ios objective-c uicolor cgcolor

所以这里是我试图从UIColor转换为CGColor的颜色:

001385 - R:0 G:19 B:133

ca000b -R:202 G:0 B:11

以下是Blue vs. iOS的渲染: 一个:enter image description here B:enter image description here

以下是Red vs. iOS的渲染:<code>enter image description here</code> b:enter image description here

以下是我用来转换颜色的代码: 红色:

[[UIColor colorWithRed:202 green:0 blue:11 alpha:1] CGColor]

蓝:

[[UIColor colorWithRed:0 green:19 blue:133 alpha:1] CGColor]

有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:24)

您需要将参数除以255.0。如@Duncan C所述,请确保除以255.0

[[UIColor colorWithRed:202.0/255.0 green:0 blue:11/255.0 alpha:1] CGColor]


[[UIColor colorWithRed:0 green:19/255.0 blue:133/255.0 alpha:1] CGColor]

答案 1 :(得分:3)

要添加到UIColor的便捷类别:

然后你可以这样做:[UIColor R:0 G:19 B:133]

@interface UIColor (RGB)

+(UIColor*)R:(NSUInteger)r G:(NSUInteger)g B:(NSUInteger)b;
+(UIColor*)R:(NSUInteger)r G:(NSUInteger)g B:(NSUInteger)b A:(CGFloat)a;

@end

@implementation UIColor (RGB)

+(UIColor*)R:(NSUInteger)r G:(NSUInteger)g B:(NSUInteger)b {
     return [self R:r G:g B:b A:1.0];
}

+(UIColor*)R:(NSUInteger)r G:(NSUInteger)g B:(NSUInteger)b A:(CGFloat)a {
    return [UIColor colorWithRed:((CGFloat)r)/255.0 green:((CGFloat)g)/255.0 blue:((CGFloat)b)/255.0 alpha:a];
}

@end