web-dev-qa-db-fra.com

Comment puis-je utiliser IBOutletCollection pour connecter plusieurs UIImageViews à la même prise?

J'ai 10 UIImageViews qui font la même chose (ils ont des méthodes void qui changent leur image avec une minuterie). Mon UIImageView est une prise et je veux connecter les 10 imagesViews à la même prise, mais le constructeur d'interface ne me le permet pas.

J'ai trouvé qu'il existe une solution, IBOutletCollection. Quelqu'un peut-il m'expliquer comment utiliser cela pour connecter plusieurs imagesViews à la même prise?

30
BalestraPatrick

Déclarez une propriété pour contenir vos images, puis connectez-les dans le générateur d'interface comme d'habitude

@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews;

c'est juste un NSArray normal mais quand la plume est chargée elle sera remplie avec vos imagesView


Mise à jour

Dans le fichier d'en-tête pour votre contrôleur de vue qui a les multiples images, vous devez ajouter la propriété ci-dessus - cela peut ressembler à ceci:

@interface MyViewController : UIViewController

@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews;
// other properties

@end

Maintenant, dans le générateur d'interface, vous connectez toutes les imagesView à cette seule propriété.

enter image description hereenter image description here

Maintenant, je travaille simplement avec la collection imageViews

for (UIImageView *imageView in self.imageViews) {
  imageView.image = someImage;
}
79
Paul.s