Générer un UIColor aléatoire
J'essaye d'obtenir des couleurs aléatoires pour UILabel...
- (UIColor *)randomColor
{
int red = arc4random() % 255 / 255.0;
int green = arc4random() % 255 / 255.0;
int blue = arc4random() % 255 / 255.0;
UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
NSLog(@"%@", color);
return color;
}
Et de l'utiliser:
[mat addAttributes:@{NSForegroundColorAttributeName : [self randomColor]} range:range];
Mais la couleur est toujours noir. Quel est le problème?
P. S. Désolé pour mon anglais )
source d'informationauteur Tatiana Mudryak
Vous devez vous connecter pour publier un commentaire.
Parce que vous avez attribué les valeurs des couleurs pour
int
variables. Utilisationfloat
(ou
CGFloat
) à la place. Aussi (comme @stackunderflow dit), le reste doitêtre pris modulo 256 afin de couvrir l'ensemble de la gamme
0.0 ... 1.0
:ou Swift:
Hésitez pas à aléatoirement ou régler la saturation et de la luminosité à votre convenance.
essayer cette
u peut utiliser de cette façon,
Ici est une swift version, réalisée dans un UIColor extension:
arc4random() % 255 /255.0
seront toujours tronquées à 0 cararc4random()%255
sera un nombre entier compris entre 0 et 254 inclusive, et en divisant par 255.0 et un casting pour un int aboutira toujours à 0. Vous devez enregistrer le résultat sous la forme d'un flotteur à la place.(D'ailleurs vous devriez utiliser
arc4random()%256
si vous souhaitez sélectionner au hasard dans toutes les couleurs possibles.)