Comment faire pour supprimer l'image de fond d'un bouton
J'ai ajouté 10 boutons à vue (par exemple le nom de la vue est "menuView"), maintenant, je veux supprimer l'image de fond pour les 2ème, 3ème, 4ème boutons. J'ai écrit le code comme ceci
for(id btn in [menuView subViews]){
[btn setBackgroundImage:nil forState:UIControlStateNormal];
}
Le problème avec ce code, c'est enlever toutes les 10 bouton de backGroundimage, mais j'ai besoin de nil
pour les 2ème, 3ème, et 4ème boutons
Vous devez vous connecter pour publier un commentaire.
Si vous créez une étiquette pour les boutons que vous ajoutez, vous pouvez filtrer contre eux.
Bien sûr, vous devez vous assurer qu'il n'y a pas d'autres points de vue dans menuView qui pourraient partager la même balise. Donc les choix sont à faire les étiquettes des grandes, des valeurs uniques, ou de vérifier qu'ils sont effectivement UIButtons. J'ai édité ce en supposant que le seul sous-vues de menuView sont UIButtons. L'énumération sur UIButtons ne cause pas les avertissements du compilateur sur
tag
n'étant pas une propriété de NSObject.UIButton
est une sous-classe deUIControl
qui est une sous-classe deUIView
.UIView
a latag
de la propriété, de sorteUIButton
hérite de cette propriété. Il est utile de regarder les docs pour une classe que vous utilisez, et continuez jusqu'à la hiérarchie pour voir si il y a des propriétés ou des méthodes qui sont utiles pour ce que vous devez faire.IBOutletCollection
qui vous pouvez pointer un tableau pour le nombre d'objets dans la plume. Point à trois boutons vous souhaitez supprimer l'image de fond et en boucle que IBOutletCollection à l'aide de code similaire à ce que @Abizern montre ci-dessus. Je sens que cette approche est plus propre qu'à l'aide de balises, que je trouve un peu arbitraire. Il y a un assez décent guide ici: bobmccune.com/2011/01/31/using-ios-4s-iboutletcollectionJuste pour élargir sur mon commentaire.
À l'aide d'un IBOutletCollection qui vous pouvez pointer un tableau pour le nombre d'objets dans la plume. Vous déclarer en tant que tel (synthèse dans la mise en œuvre):
Cela dit IB que c'est une collection de UIButton éléments. Au bureau de l'IB, vous connecter à trois boutons vous souhaitez supprimer l'image de fond de, par le contrôle en faisant glisser pour les boutons. Une fois cela fait, le tableau contiendra ces boutons vous vous êtes connecté et vous pouvez faire une boucle comme ceci:
De nouveau, le lien pour une explication plus détaillée peut être trouvée à: http://bobmccune.com/2011/01/31/using-ios-4s-iboutletcollection
Lors de la création de boutons, essayez d'utiliser le "tag" de la propriété. Puis, lors de la configuration de l'arrière-plan à zéro, vous pouvez le vérifier btn.tag == 2,btn.tag == 3 ou btn.tag == 4.
Vous pourriez avoir attribué balises pour les boutons de 1 à 10 en les ajoutant dans le menu visualiser. Et maintenant, avec l'aide de balises, nous pouvons décidé quoi faire avec des boutons.
Tout d'abord, êtes-vous de placer les boutons à l'aide de l'Interface Builder?
Si si, je vous recommande de placer les balises numérotées pour chacun des boutons, puis vous pouvez utiliser quelque chose comme ce qui suit pour trouver les boutons appropriés et de supprimer l'image de fond.
Si vous êtes en train de créer par programmation et de manière séquentielle, je vous recommande de placer les boutons dans un tableau comme ils sont faits, et il suffit de supprimer l'arrière-plan des boutons à l'aide de "objectAtIndex".