Je veux utiliser NSAttributedString
dans mon projet, mais lorsque j'essaie de définir la couleur, qui ne fait pas partie de l'ensemble standard (redColor
, blackColor
, greenColor
etc.) UILabel
affiche ces lettres en blanc. Voici ma ligne de ce code.
[attributedString addAttribute:NSForegroundColorAttributeName
value:[UIColor colorWithRed:66
green:79
blue:91
alpha:1]
range:NSMakeRange(0, attributedString.length)];
J'ai essayé de faire de la couleur avec CIColor
à partir du framework Core Image, mais cela a montré les mêmes résultats. Que dois-je changer dans mon code pour l'exécuter correctement?
Merci pour les réponses, les gars!
Vos valeurs sont incorrectes, vous devez diviser chaque valeur de couleur par 255,0.
[UIColor colorWithRed:66.0f/255.0f
green:79.0f/255.0f
blue:91.0f/255.0f
alpha:1.0f];
Les documents indiquent:
+ (UIColor *)colorWithRed:(CGFloat)red
green:(CGFloat)green
blue:(CGFloat)blue
alpha:(CGFloat)alpha
Paramètres
rouge La composante rouge de l'objet couleur, spécifiée comme une valeur de 0,0 à 1,0.
vert Composant vert de l'objet couleur, spécifié sous la forme d'une valeur de 0,0 à 1,0.
bleu Composant bleu de l'objet couleur, spécifié sous la forme d'une valeur de 0,0 à 1,0.
alpha La valeur d'opacité de l'objet couleur, spécifiée comme une valeur de 0,0 à 1,0.
Une de mes macros préférées, pas de projet sans:
#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]
Utilisation comme:
[attributedString addAttribute:NSForegroundColorAttributeName
value:RGB(66, 79, 91)
range:NSMakeRange(0, attributedString.length)];
UIColor
utilise une plage de 0 à 1,0, pas des entiers à 255 .. Essayez ceci:
// 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)];
Veuillez essayer le code
[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)];
comme
Label.textColor=[UIColor colorWithRed:77.0/255.0f green:104.0/255.0f blue:159.0/255.0f alpha:1.0];
Les composants RVB d'UIColor sont mis à l'échelle entre 0 et 1, pas jusqu'à 255.
Depuis que @Jaswanth Kumar l'a demandé, voici la version Swift
de LSwift :
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)
)
}
}
Utilisation: let color = UIColor(rgb: 0x112233)