如何从RGBA创build一个UIColor?

我想在我的项目中使用NSAttributedString ,但是当我尝试设置不是来自标准设置( redColorblackColorgreenColor等)的颜色时, UILabel以白色显示这些字母。 这是我的代码行。

 [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:66 green:79 blue:91 alpha:1] range:NSMakeRange(0, attributedString.length)]; 

我试图从核心图像框架使用CIColor颜色,但它显示了相同的结果。 我应该改变我的代码,以正确的方式执行它?

Thx寻求答案,伙计们!

您的值不正确,您需要将每个颜色值除以255.0。

 [UIColor colorWithRed:66.0f/255.0f green:79.0f/255.0f blue:91.0f/255.0f alpha:1.0f]; 

文档状态:

 + (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha 

参数

红色颜色对象的红色分量,指定为从0.0到1.0的值。

绿色颜色对象的绿色组件,指定为从0.0到1.0的值。

蓝色颜色对象的蓝色分量,指定为从0.0到1.0的值。

alpha颜色对象的不透明度值,指定为从0.0到1.0的值。

在这里引用。

我最喜欢的macros之一,没有项目没有:

 #define RGB(r, g, b) [UIColor colorWithRed:(float)r / 255.0 green:(float)g / 255.0 blue:(float)b / 255.0 alpha:1.0] #define RGBA(r, g, b, a) [UIColor colorWithRed:(float)r / 255.0 green:(float)g / 255.0 blue:(float)b / 255.0 alpha:a] 

使用像:

 [attributedString addAttribute:NSForegroundColorAttributeName value:RGB(66, 79, 91) range:NSMakeRange(0, attributedString.length)]; 

UIColor使用范围从0到1.0,而不是整数到255 ..试试这个:

 // create color UIColor *color = [UIColor colorWithRed:66/255.0 green:79/255.0 blue:91/255.0 alpha:1]; // use in attributed string [attributedString addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(0, attributedString.length)]; 

请尝试代码

 [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:77.0/255.0f green:104.0/255.0f blue:159.0/255.0f alpha:1.0] range:NSMakeRange(0, attributedString.length)]; 

喜欢

 Label.textColor=[UIColor colorWithRed:77.0/255.0f green:104.0/255.0f blue:159.0/255.0f alpha:1.0]; 

UIColor的RGB分量在0和1之间,而不是255。

由于@Jaswanth Kumar问,这是LSwift的Swift版本:

extension UIColor { convenience init(rgb:UInt, alpha:CGFloat = 1.0) { self.init( red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgb & 0x0000FF) / 255.0, alpha: CGFloat(alpha) ) } }

用法: let color = UIColor(rgb: 0x112233)