Comment convertir UIColor HEX et l'afficher dans la NSLog
J'ai vérifié plusieurs liens sur la façon de convertir UIColor codes hexa mais je ne suis pas sûr de la manière de l'appel à la méthode d'affichage dans NSLog. Je n'ai pas la réputation de commentaire, donc l'affectation en question est mon dernier recours. Je veux qu'il affiche quand je lance mon application dans le journal.
Deuxième, où dois-je saisir le RVB numéro de la couleur ( R = 30, G = 171, B = 13)? Je vois que tous les exemples d'utilisation de la Matrice de [0], [1], [2] qui, normalement, se réfère à la position d'index, alors, où puis-je ajouter de la couleur des valeurs?
J'ai ce code:
- (NSString *) hexFromUIColor:(UIColor *)color {
if (CGColorGetNumberOfComponents(color.CGColor) < 4) {
const CGFloat *components = CGColorGetComponents(color.CGColor);
color = [UIColor colorWithRed:components[30] green:components[141] blue:components[13] alpha:components[1]];
}
if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {
return [NSString stringWithFormat:@"#FFFFFF"];
}
return [NSString stringWithFormat:@"#%02X%02X%02X", (int)((CGColorGetComponents(color.CGColor))[0]*255.0), (int)((CGColorGetComponents(color.CGColor))[1]*255.0), (int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
}
Liens que j'ai vérifié:
couleur hexadécimale de uicolor
Comment convertir HEX codes de couleur RVB à UIColor?
J'ai essayé d'appeler la méthode viewDidLoad cependant il l'habitude de travailler sans UIColor. Je suis sûr que c'est quelque chose de simple.
Merci à toute personne qui répond.
Qu'est-ce que le code que j'utilise dans mon viewDidLoad à l'appel à cette méthode afin de l'afficher dans NSLog?
- Sur ce projet github github.com/toby4242/UIColor-extensions/tree/master/... il y a une méthode appelée
hexFromUIColor:
tout ce que vous devez faire est de l'appeler commeNSString *hexStr = [UIColor hexFromUIColor:[UIColor redColor]];
il suffit de prendre le code que vous avez besoin.
Vous devez vous connecter pour publier un commentaire.
Utilisez code ci-dessous:
Après l'obtention de leur code hexadécimal de la chaîne, l'Appel ci-dessous la méthode pour obtenir
UIColor
`
UTILISATION
NSLog()
pour afficher la valeur hexadécimale de la console? Ceci ne répond pas à la question, il montre juste comment convertirNSLog()
dans la méthode 🙂Kampai la réponse de travaux pour les couleurs RVB, mais pas pour monochrome (UIColor colorWithWhite:alpha:). Il ne gère pas les alpha, qui HEX prend en charge. Voici une version légèrement modifiée de hexStringFromColor:
colorspace
vérifier? Tout ce que je peux voir, c'est le changement dans l'opacité lors de l'essai. Merci.[UIColor colorWithWhite:(0.2125 * red) + (0.7154 * green) + (0.0721 * blue) alpha:alpha];
Et enfin la version qui fonctionne avec alpha-composant et utilise le multiplicateur
D'autres réponses rapides crash pour UIColors comme le blanc, où il y a seulement 2 composants retournés par CGColor.
Voici un Swift 4 version qui n'ont pas ce problème et renvoie également à la transparence de l'information à la fin de la chaîne, si cela est nécessaire (format web).
Par exemple:
Blanc sera de retour #FFFFFF
Blanc avec une opacité de 50% sera de retour #FFFFFF7F
Dans Swift, j'ai simplement créé une extension pour UIColor...
Swift 2 version de la accepté de répondre. Je l'ai converti en un
UIColor
extension.La swift 2 réponse converti à swift 3
Piège potentiel Lorsqu'ils Traitent Avec des Alpha: HEX chaînes viennent dans différents formats, dont certains ont leur alpha au début de la chaîne hexadécimale et d'autres formats sont à la fin. En fonction de votre arrière-plan, vous pouvez avoir une idée différente de la façon dont la chaîne hexadécimale est formaté. Pour les développeurs Android, il sera probablement avec l'alpha au début, pour les développeurs Web, il sera probablement à la fin de la chaîne. DONC TOUJOURS indiquer LE FORMAT DE LA CHAÎNE HEXADÉCIMALE pour éviter toute confusion. Android hex chaînes sont tenus d'avoir l'alpha au début. Donc, c'est un piège les gens peuvent tomber dans quand il s'agit de hex cordes (je l'ai fait) et il est donc important de dire ce que le format attendu est. Donc, si vous développez une application pour iOS et Android ce pour ce piège.
Liens:
https://en.wikipedia.org/wiki/RGBA_color_space pour plus de détails sur le pourquoi d'une chaîne HEXADÉCIMALE peut-être formaté de différentes façons, certains cas avec l'alpha au début. Android liens https://developer.android.com/reference/android/graphics/Color.html et https://gist.github.com/lopspower/03fb1cc0ac9f32ef38f4
VEUILLEZ NOTER que, POUR #AARRGGBB Hex format de chaîne de caractères
Utilisez le code suivant si l'Alpha est au début de la chaîne.
(Remarque: si
color == null
noir est retourné).C'est le bon ordre si vous avez besoin de couleurs pour Android. l'alpha va d'abord:
Ensuite appeler comme: