J'ai un UIButton qui, lorsqu'il est sélectionné, ne devrait pas changer d'état lorsqu'il est touché. Le comportement par défaut est qu'il soit dans UIControlStateHighlighted tout en étant touché, et cela me met en colère.
Suggestions?
Votre bouton doit avoir sa valeur buttonType
Personnalisée.
Dans IB, vous pouvez décocher "Highlight ajuste l'image".
Vous pouvez utiliser par programme theButton.adjustsImageWhenHighlighted = NO;
Des options similaires sont également disponibles pour l'état "désactivé".
En plus de la réponse ci-dessus consistant à décocher «la mise en évidence ajuste l'image» dans IB, assurez-vous que le type de bouton est défini sur PERSONNALISÉ.
la source
Cela fonctionnera pour vous:
La troisième ligne est le truc ici ...
Cela fonctionne de la même manière pour la configuration de l'image / backgroundImage
la source
adjustsImageWhenHighlighted
propriété deUIButton
semble affecter uniquement l'image d'arrière-plan.la source
est également utile pour avoir votre propre apparence d'un bouton désactivé.
la source
En fonction de ce qui change de l'état par défaut à l'état en surbrillance du bouton, vous pouvez appeler quelques méthodes pour les définir selon vos besoins. Donc, si l'image change, vous pouvez le faire
Si le texte change, vous pouvez faire
autres fonctions similaires:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
la source
OK, voici une solution simple si cela fonctionne pour vous, après une semaine à me cogner la tête, il m'est finalement venu à l'esprit de simplement mettre en surbrillance = NON pour la 1ère ligne de la méthode IBAction pour TouchUpInside ou TouchDown, ou tout ce qui fonctionne. Pour moi, c'était bien sur le TouchUpInside.
la source
Pour Swifty Developer -
la source
Swift 3+
la source
juste deux choses:
la source
J'ai eu un problème similaire et j'ai constaté que "décocher" Efface le contenu graphique dans le générateur d'interface a résolu mon problème
la source
faites votre bouton Type - "Personnalisé" et décocher - En surbrillance Ajuster l'image et vous avez terminé.
la source
évitez de définir le saut de ligne d'UIButton sur Clip , utilisez à la place le standard Truncate Middle
la source