web-dev-qa-db-fra.com

Comment changez-vous la couleur d'un UIFont?

J'ai cherché sur le Web et je ne peux pas obtenir une bonne réponse, même si je suis sûr que c'est très simple. Quelqu'un peut-il me montrer comment faire les choses suivantes: Faire une UIFont de nom "Helvetica-Bold", taille 8.0 et couleur noire.

J'ai le nom et la taille, mais je ne sais pas comment changer la couleur:

UIFont *textFont = [UIFont fontWithName:@"Helvetica-Bold" size:8.0];

Merci!

39
CodeGuy

UIFont ne contient/ne conserve aucune information sur les couleurs, ce n'est donc pas possible. En général, les contrôles qui utilisent UIFont comme un UILabel ont à la fois une police et une propriété textColor. Donc, vous définiriez la police d'une étiquette et sa couleur comme ceci:

myLabel.textColor = [UIColor blackColor];
myLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:8.0];
55
theChrisKent

Si vous dessinez du texte, vous pouvez utiliser la fonction suivante;

[text drawAtPoint:CGPointMake(x, y) withAttributes:@{ NSFontAttributeName: [UIFont systemFontOfSize:sizeOfFont], NSForegroundColorAttributeName:[UIColor redColor] }];
4
Oktay

Si, par hasard, vous restituez la police en une texture dans OpenGL, vous pouvez également utiliser les fonctions CGContext * ,

En supposant que vous avez déjà un contexte cg valide:

CGContextSelectFont(cgContext, "Arial", 24, kCGEncodingMacRoman);
CGContextSetRGBStrokeColor(cgContext, 1.0f, 1, 1, .5f) ;
CGContextShowTextAtPoint(cgContext, 20, 20, "HI THERE", strlen("HI THERE") ) ;
4
bobobobo

Vous pouvez aussi utiliser [myLabel setTextColor:[UIColor grayColor]];.

1
NiKKi