user1342428
user1342428

Reputation: 33

delay imageviews xcode

I hit the play button 6 image views will be filled with the pressed images, I want it to view 1, wait 1 second,view2, wait one second etc.

which code should I be adding to:

[imageview7 setImage:imageview1HG.image];
      [imageview8 setImage:imageview2HG.image];
        [imageview9 setImage:imageview3HG.image];
        [imageview10 setImage:imageview4HG.image];
        [imageview11 setImage:imageview5HG.image];
        [imageview12 setImage:imageview6HG.image];

I tried this: but it doesn't work:

[self performSelector:@selector(GameViewController)  withObject:nil afterDelay:1]; 

hope someone knows bye thanks

EDIT explaining my code more

-(IBAction)play {

 [self performSelector:@selector(delay) withObject:nil afterDelay:5.0];

play.enabled=NO;

UIImage *img = [UIImage imageNamed:@""];

if (imageview7.image == nil) {

    if([textview.text isEqualToString:labelsText.text]){

        -(void)delay {
        [imageview7 setImage:imageview1HG.image];
        [imageview8 setImage:imageview2HG.image];
        [imageview9 setImage:imageview3HG.image];
        [imageview10 setImage:imageview4HG.image];
        [imageview11 setImage:imageview5HG.image];
            [imageview12 setImage:imageview6HG.image];}
    }
    else {

        -(void)delay {
    [imageview7 setImage:imageview1H.image];
    [imageview8 setImage:imageview2H.image];
    [imageview9 setImage:imageview3H.image];
    [imageview10 setImage:imageview4H.image];
    [imageview11 setImage:imageview5H.image];
            [imageview12 setImage:imageview6H.image];}

Upvotes: 0

Views: 702

Answers (2)

Shaheen M Basheer
Shaheen M Basheer

Reputation: 1010

I guess you want to setImage on UIImageView one after the other after a delay.Here is the code for it.

Definition

@interface ViewController : UIViewController
{  
    NSMutableArray * imageViews;
    NSMutableArray * images;
    int count;
    NSTimer * timer1;
}
-(void)setImageForView:(UIImageView *)imageView withImage:(UIImage *)image;
-(void)update;
-(IBAction)setImageOnViewOneAfterOther;
@end

Definition

-(void)setImageForView:(UIImageView *)imageView withImage:(UIImage *)image{

    [imageView setImage:image];
}
-(void)update{

    if (count < [imageViews count]) {
        [self setImageForView:[imageViews objectAtIndex:count] withImage:[images objectAtIndex:count]];
        count ++;
    }else{
        [timer1 invalidate];
    }

}
-(IBAction)setImageOnViewOneAfterOther{
    count = 0;
    imageViews = [[NSMutableArray alloc] initWithObjects:img1v,img2v,img3v,img4v,img5v,img6v, nil]; // Set of all UIImageViews 
    images = [[NSMutableArray alloc] initWithObjects:img1,img2,img3,img4,img5,img6, nil];//Set of all UIImage's where img = [UIImage imageNamed:@"someImage1.png"];
    timer1 = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(update) userInfo:nil repeats:YES];
}

Upvotes: 2

TompaLompa
TompaLompa

Reputation: 949

Why not animate it?

UIImageView* animatedImageView = [[UIImageView alloc]init];
animatedImageView.animationImages = [NSArray arrayWithObjects:    
                                 [UIImage imageNamed:@"1.gif"],
                                 [UIImage imageNamed:@"2.gif"],
                                 [UIImage imageNamed:@"3.gif"],
                                 [UIImage imageNamed:@"4.gif"], nil]; //etc
animatedImageView.animationDuration = float([animatedImageView.animationImages count]);
animatedImageView.animationRepeatCount = 0;
[animatedImageView startAnimating];
[self.view addSubview: animatedImageView];

Upvotes: 0

Related Questions