I got an NSArray with 5 pictures. I want to display them one after the other in a loop. My code :
NSArray *tabImage = [[NSArray alloc] init];
tabImage = [[NSArray arrayWithObjects:
[UIImage imageNamed:@"picto_1.png"],
[UIImage imageNamed:@"picto_2.png"],
[UIImage imageNamed:@"picto_3.png"],
[UIImage imageNamed:@"picto_4.png"],
[UIImage imageNamed:@"picto_5.png"],
nil] retain];
int var = 0;
var = indexPath.row;
for (int var = 0; var < 20; var++) {
pictoImage.image = [tabImage objectAtIndex:(var % 5)];
}
I got the same picture all the time.
Thanks for help.
I’m guessing
pictoImage
is anUIImageView
. In that case look at the class reference, specifically theanimationImages
properties.If
pictoImage
is anUIImageView
, @Hagelin's answer is the best way to go. Now, ifpictoImage
is not anUIImageView
object then you will have to take a different approach and that definitely is not a loop.Set an NSTimer with a desired time interval and invoke a method that updates
pictoImage
iterating over thetabImages
. It should be something like this :-This should update the
pictoImage
every 2 seconds with images intabImages
.You are not giving the framework time to actually render the images to the window.
All your updates are being coalesced into one "setNeedsDisplay" call. On the next iteration of the run loop, the image view will be rendered using the last image that you set in the loop.
You don't print anything.
You are overriding the contents of your
pictoImage
20 times in a row, leaving it with the last assignment when var is 19, so it should be picto_4.png.Also, the whole
var
declaration doesn't make much sense at all... first you set it to0
, then you set it toindexPath.row
, and in the loop it is completely redefined....