UIButton titre du changement de couleur de la surbrillance - Comment l'éteindre?
J'ai créé un bouton. Le titre de la couleur est noire par défaut. Mais quand je le presse, les changements de couleur un peu bleu et ne change jamais de retour encore une fois, comment est-ce possible? Quelqu'un peut me dire pourquoi? Et je veux que le bouton de titre du noir tout le temps. Comment puis-je le faire? J'ai essayé
[button setTitleColor:[UIColor darkTextColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor darkTextColor] forState:UIControlStateSelected];
Mais Il n'y a pas d'effet. Quand j'ai ajouter ceci dans mon code, il semble que le bouton du titre toujours bleu.
Code comme suit.
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake(20, 360, 280, 44)];
[button setTitle:NSLocalizedString(@"Continue", @"Label: TextLabel in Continue button") forState:UIControlStateNormal];
button.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
button.titleLabel.textColor = [UIColor darkTextColor];
button.titleLabel.shadowColor = [UIColor blackColor];
button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth;
[self.view addSubview:button];
[button release];
Merci à tous. J'ai sloved le problème. Je pense que la cause est
button.titleLabel.textColor = [UIColor darkTextColor];
Quand je l'ai enlever, et l'utilisation
button setTitleColor:(UIColor) forState:(UIControlState);
Le problème est résolu!
- Quelle méthode est-ce bouton lié à?
- Voulez-vous désactiver la mise en évidence de l'image? Dans le fichier Xib, décochez l'option "mettre en évidence ajuste l'image".
- Jusqu'à présent je n'ai pas de mettre en œuvre la méthode associée.
- Changer le type de bouton de "Système" "Personnalisé" dans votre storyboard.
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser
[UIButton setTitleColor:forState:]
de tous les états , puis la couleur du titre restera identique pour tous les etats.
Remarque:Pour éviter de taper ou de coller le code ci-dessus trois fois, vous pouvez utiliser le code suivant proposé par la Volonté,
[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted & UIControlStateNormal & UIControlStateSelected];
&
chose dans Swift?&
sera de retour 0 pour le code, ce qui signifie que c'est exactement comme le simple fait d'écrireUIControlStateNormal
. Le nécessaire au niveau du bit opérateur est|
:UIControlStateNormal | UIControlStateHighlighted | ...
Comme @null rappelle, de loin, le moyen le plus simple pour ce faire est de définir le type de bouton dans l'Interface Builder (ou code) de "la Coutume".
Si vous avez besoin de reproduire ce comportement avec un bouton standard, remplacer la
setHighlighted
méthode pour empêcher le canal alpha de la titleLabel de réglage de trop:0 lignes de code:
À l'aide de Interface Builder et soit
.XIB
ou.storyboard
, sélectionnez votreUIButton
de l'IB:View > Utilitaires > Afficher les Attributs de l'Inspecteur de.
Sélectionnez État Config (par Défaut) à l'un des mis en évidence, Sélectionné ou Désactivé et modifier le Couleur du Texte attribut.
Il y a quelques commentaires de le rappeler, mais pour l'avoir comme une réponse réelle:
Défini le type de bouton
Custom
dans votre scénario ou dans le code:[UIButton buttonWithType:UIButtonTypeCustom];
Pour quelque chose d'un peu plus réutilisable, vous pourriez envisager de faire cela, car il ne marche pas violer le principe DRY. Ajouter une catégorie sur UIButton.
exemple d'utilisation pour votre cas:
Je pense que mayuur est droit. Avez-vous essayé une autre couleur au lieu de "darkTextColor" si? Autant que je sache "darkTextColor" est un système de couleur spécifique qui est utilisé pour écrire du Texte sur fond clair. Peut-être essayer blackColor si mayuurs suggestion ne fonctionne pas.
Edit: Essayez d'ajouter:
[sender setHighlighted:NO];
dans votre IBAction qui est appelé en appuyant sur une touche. Est-il le résoudre? Je propose cela car à partir de la[button release];
je suppose que vous êtes toujours une ancienne version de l'iOs SDK et là, vous n'avez pas la possibilité de désactiver la mise en surbrillance d'un bouton dans une manière élégante d'autre que cela.Edit2: Vous êtes en train de créer le bouton par programme mais je ne vois pas de vous connecter avec une IBAction.
Ajouter en-dessous de votre
[[UIButton alloc] init];
Puis créer une IBAction méthode comme ceci: