web-dev-qa-db-fra.com

Couleur du texte du titre UIButton

Je règle la couleur du texte pour UIButton

headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0 
                                                     green:71/255.0 
                                                      blue:113/255.0 
                                                     alpha:1.0];

Cela ne change pas la couleur du même code que j'utilise dans un autre code, cela fonctionne.

159
Ali

utilisation

Objective-C

[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

rapide

headingButton.setTitleColor(.black, for: .normal)
421
Amit Singh

J'ai créé une classe personnalisée MyButton étendue de UIButton. Puis ajouté ceci dans le Identity Inspector:

enter image description here

Après cela, changez le type de bouton en Custom:

enter image description here

Ensuite, vous pouvez définir des attributs tels que textColor et UIFont pour votre UIButton pour les différents états:

enter image description here

Ensuite, j'ai également créé deux méthodes à l'intérieur de la classe MyButton que je dois appeler à l'intérieur de mon code lorsque je veux qu'un objet UIButton soit affiché en surbrillance:

- (void)changeColorAsUnselection{
    [self setTitleColor:[UIColor colorFromHexString:acColorGreyDark] 
               forState:UIControlStateNormal & 
                        UIControlStateSelected & 
                        UIControlStateHighlighted];
}

- (void)changeColorAsSelection{
    [self setTitleColor:[UIColor colorFromHexString:acColorYellow] 
               forState:UIControlStateNormal & 
                        UIControlStateHighlighted & 
                        UIControlStateSelected];
}

Vous devez définir titleColor pour normal, mettre en surbrillance et sélectionner UIControlState car il peut exister plusieurs états à la fois, selon la documentation de UIControlState. Si vous ne créez pas ces méthodes, la UIButton affichera la sélection ou la surbrillance, mais elles ne resteront pas dans la UIColor que vous avez configurée dans le UIInterface Builder, car elles ne sont disponibles que brièvement. affichage d'une sélection, pas pour afficher la sélection elle-même.

5
Alex Cio

Dans Swift:

Changer la couleur du texte de l'étiquette est assez différent de le changer pour un UIButton. Pour changer la couleur du texte pour un UIButton, utilisez cette méthode:

self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)
4
Prashant chaudhary