Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use IBOutletCollection to connect multiple UIImageViews to the same outlet?

I have 10 UIImageViews which do the same thing (they have some void methods that change their image with a timer). My UIImageView is an outlet and I want to connect all the 10 imageViews to the same outlet, but interface builder doesn't allow me.

I found that there is a solution, IBOutletCollection. Can anyone explain to me how to use this to connect multiple imageViews to the same outlet?

like image 966
BalestraPatrick Avatar asked Apr 05 '13 14:04

BalestraPatrick


1 Answers

Declare a property to hold your imageView's and then hook them up in interface builder like normal

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

it's just a normal NSArray but when the nib is loaded it will be populated with your imageView's


Update

In the header file for you view controller which has the multiple imageView's on you need to add the property above - it may look something like this:

@interface MyViewController : UIViewController  @property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews; // other properties  @end 

Now in the interface builder you connect all the imageView's to this one property.

enter image description hereenter image description here

Now I just work with the imageViews collection

for (UIImageView *imageView in self.imageViews) {   imageView.image = someImage; } 
like image 130
Paul.s Avatar answered Sep 28 '22 08:09

Paul.s