2010-06-20 2 views
19

J'ai un UIButton que j'ai ajouté dans IB, mais la vue derrière ce bouton change de couleur et je dois changer le type du bouton entre InfoDark et InfoLight. Bizarrement, la propriété buttonType est en lecture seule. Alors, comment puis-je basculer entre les boutons d'informations claires et sombres?ensemble ButtonType de UIButton programme

+0

Ce n'est pas un doublon. Cette question concerne la modification du type de bouton après son instanciation. La question référencée concerne la façon d'instancier le bouton dans le code. Veuillez supprimer la duplication – osxdirk

Répondre

23

Il n'y a aucun moyen de changer le .buttonType une fois qu'il est défini.

Vous pouvez préparer deux boutons et en masquer un en fonction de la couleur d'arrière-plan.

+0

bien apparemment theres une méthode de setter privé, par pourquoi quelque chose comme ça est privé qui sait. Merci pour votre idée sur 2 boutons, c'est ce que je vais faire. –

+0

@Jon: C'est privé parce que régler ceci ne convertira * pas * un bouton d'information sombre en un léger. – kennytm

51

Vous ne pouvez pas définir ButtonType propriété en lecture seule, utilisez ci-dessous peut aider:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
+0

Merci, celui m'a aidé. – James

+9

À quel moment substituer la classe UIButton? (Je veux dire la sous-classe) –

+0

Dans swift, si vous utilisez la classe custome alors, laissez button = MyCustomeClass.init (tapez: .custom) –