web-dev-qa-db-fra.com

Modification programmée de la couleur de la police UIButton en fonction de l'état

J'essaie de créer par programme un UIButton. Cependant, par défaut, il devient blanc (la couleur par défaut de ma barre de navigation, je pense que c'est pertinent). Je veux que ce soit simplement la couleur bleue par défaut d'Apple dans iOS7. J'ai réussi à changer la couleur pour son état par défaut, mais dès que je le sélectionne, le texte redevient blanc. Je n'arrive pas à comprendre comment le garder en bleu.

Quelqu'un pourrait-il m'expliquer s'il vous plaît comment créer un UIButton par programme et le faire agir de la même manière que si je l'avais créé dans le scénarimage?

Code actuel:

UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
cancelButton.frame = CGRectMake(320 - 150, 0, 140, 40);
[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
cancelButton.titleLabel.tintColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0];
cancelButton.titleLabel.textColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0];

Je vous remercie.

10
Ian

Essayez ce code:

UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
[cancelButton setFrame:CGRectMake(320 - 150, 0, 140, 40)];
[cancelButton setBackgroundColor:[UIColor clearColor]];
[cancelButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[cancelButton setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted]; // This will helps you during click time title color will be blue color
[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
[cancelButton addTarget:self action:@selector(button_Action) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:cancelButton];
28
Mind Pixel

Juste essayé avec

[cancelButton setTitleColor:[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0/255.0 alpha:1.0] forState:UIControlStateNormal];

Pour plus d'informations, lisez la documentation officielle de UIButton.

3
iPatel

Avez-vous essayé cela

[cancelButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[cancelButton setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
1
Sunny Shah

Cela résoudra votre problème,

    [cancelButton setTitleColor:YOUR COLOR forState:SPECIFIED STATE];

Les valeurs d'état sont: 

UIControlStateNormal
UIControlStateHighlighted                
UIControlStateDisabled    
UIControlStateSelected 
1
Apple

Essayez d'utiliser 

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state 

pour spécifier des couleurs pour tous les états requis.

0
Aloha Silver

Rapide:

let button = UIButton (type: UIButtonType.system)

Cela créera un bouton qui utilise la couleur de teinte standard, comme un bouton ajouté à un scénario dans le constructeur d'interface.

0
Dave Anderson