2010-11-30 19 views
0

J'ai un UIButton qui a des images définies pour l'état normal et l'état sélectionné. D'après ce que je comprends, lorsque vous basculez l'état button.selected à YES/NO, il devrait basculer entre les deux images. C'est sûr. Mais l'image d'état sélectionnée apparaît toujours derrière l'état normal.L'image de l'état de sélection UIButton apparaît derrière l'image de l'état normal

La raison pour laquelle je peux voir ceci est parce que mon état normal est un bouton de lecture et le triangle du milieu est fondamentalement transparent. Je peux voir le bouton de pause apparaître derrière.

Quelqu'un sait quel est le problème et, peut-être comment y remédier?

Merci :)

+0

J'ai le même problème avec iOS 5.0. Dans mon cas, il y a une chance que cela arrive la première fois qu'un NIB charge. Sur les charges suivantes du même NIB, le bouton fonctionne correctement jusqu'à ce que l'application soit terminée. J'ai envoyé un rapport de bogue à Apple et j'encouragerais toute personne rencontrant ce bogue à faire de même. –

Répondre

0

réussi à le fixer par l'absence de variable d'état de le faire. Je ne fais que définir explicitement l'image à chaque fois. Kinda boiteux mais fonctionne.

0

J'ai aussi eu ce problème et c'est peut-être un bug donc je vais vérifier avec Apple. J'avais le code suivant, mais l'image et le texte "Selected State" ne s'afficheraient pas.

[btnConfirm setSelected: YES]; 
[btnConfirm setEnabled: NO]; 
[btnConfirm setAlpha: .6]; 

Donc, si l'article avait été précédemment confirmé, je ne voulais pas l'utilisateur de pouvoir taper à nouveau sur le bouton ([btnConfirm setEnabled: NO]). Je voulais que le libellé change pour CONFIRM à CONFIRMED, et je voulais également afficher une image Checkmark personnalisée. Enfin, je voulais que le bouton apparaisse "Grayed-Out" ([btnConfirm setAlpha: .6]).

Eh bien, cela n'a pas fonctionné jusqu'à ce que j'ai supprimé l'instruction [btnConfirm setEnabled: NO]. Pour une raison quelconque, lorsque le bouton est désactivé, il ne peut pas avoir un état "Sélectionné". Je suppose que c'est logique, mais pourquoi sont-ils mutuellement exclusifs, je ne peux pas expliquer, alors je vais signaler mon problème. En attendant, je peux également essayer en surbrillance ...

0

J'ai résolu mon problème en utilisant simplement l'état Désactivé. J'ai supprimé [btnConfirm setSelected: YES] car il n'est plus nécessaire. L'état Désactivé du bouton est automatiquement défini une fois que le paramètre btnConfirm.Enabled est défini sur NO.

Cela a résolu tous mes problèmes.