RVB (34, 34, 34) à UICouleur
J'ai un RVB chaîne dans le formulaire rgb(34, 34, 34)
. Je veux l'analyser pour un UIColor
l'utilisation d'iOS. Je crois que j'ai besoin d'une regex pour cela, mais je n'arrive pas à se fissurer. C'est ce que j'ai jusqu'à présent.
NSString *regExString = @"(.*?)rgb\((\d+), (\d+), (\d+)\)";
NSError *error = nil;
NSRegularExpression *regEx = [NSRegularExpression regularExpressionWithPattern:regExString
options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *matches = [regEx matchesInString:backgroundColorString options:NSRegularExpressionCaseInsensitive
range:NSMakeRange(0, backgroundColorString.length)];
Si quelqu'un pourrait m'envoyer dans la bonne direction, ce serait génial.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
UIColor utilise un 0 à 1 au lieu de 0 à 255 système de sorte que vous avez juste besoin de les convertir comme suit:
Mise à jour
Après re-lecture de votre question, j'ai réalisé votre vrai problème n'est pas la conversion de UIColor mais le choix de valeurs. Je ne sais pas beaucoup sur les regex mais NSScanner est un simple Objective-C objet que l'on peut faire la même chose, mais avec plus de commentaires. Essayez ceci pour la taille. Je suis sûr qu'il pourrait y avoir de meilleures façons peut-être même plus efficace utilise de l'NSScanner lui-même, mais cela fonctionne et fonctionnera pour tout int les valeurs qui viennent à travers.
Pourquoi utiliser une regex?
Juste utiliser des pourcentages de 255:
Tada!
Je l'ai fait simple à l'aide de macro du préprocesseur.
comment utiliser:
Je suis toujours en laissant ce code dans mon iOS projets.