user7369234
user7369234

Reputation:

How to hide image view in ios?

I have image view, if click button talking tom cat will play with animationRepeatCount:2, after this, I want to hide image view. How to hide that image view?

    - (IBAction)catBlinkButton:(UIButton *)sender {
    self.imageView.hidden = NO;
    self.imageView.animationDuration = 2;
    self.imageView.animationRepeatCount = 2;
    self.imageView.animationImages = [[NSArray alloc]initWithObjects:
                                      [UIImage imageNamed:@"cat_blink0000.png"],
                                      [UIImage imageNamed:@"cat_blink0001.png"],
                                      [UIImage imageNamed:@"cat_blink0002.png"],
                                      nil];

    [self.imageView startAnimating];

}

This is my code...

Upvotes: 6

Views: 5870

Answers (4)

0yeoj
0yeoj

Reputation: 4550

You can simply use CATransaction like:

self.imageView.hidden = NO;

[CATransaction begin];

[CATransaction setCompletionBlock:^{

    self.imageView.hidden = YES;

}];

self.imageView.animationDuration = 2;
self.imageView.animationRepeatCount = 2;
self.imageView.animationImages = [[NSArray alloc]initWithObjects:
                                  [UIImage imageNamed:@"cat_blink0000.png"],
                                  [UIImage imageNamed:@"cat_blink0001.png"],
                                  [UIImage imageNamed:@"cat_blink0002.png"],
                                  nil];

[self.imageView startAnimating];

[CATransaction commit];

CATransaction will dynamically wait for the animation to finish...

Upvotes: 11

viral
viral

Reputation: 4208

You can execute the code after slate on main thread.

- (IBAction)catBlinkButton:(UIButton *)sender {

    self.imageView.hidden = NO;
    self.imageView.animationDuration = 2;
    self.imageView.animationRepeatCount = 2;
    self.imageView.animationImages = [[NSArray alloc]initWithObjects:
                                      [UIImage imageNamed:@"cat_blink0000.png"],
                                      [UIImage imageNamed:@"cat_blink0001.png"],
                                      [UIImage imageNamed:@"cat_blink0002.png"],
                                      nil];

    [self.imageView startAnimating];

    // after 2 seconds.
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{

        // hide imageview
        self.imageView.hidden = YES;
    });
}

Upvotes: 2

Dishant Rajput
Dishant Rajput

Reputation: 1357

- (IBAction)catBlinkButton:(UIButton *)sender {
self.imageView.hidden = NO;
self.imageView.animationDuration = 2;
self.imageView.animationRepeatCount = 2;
self.imageView.animationImages = [[NSArray alloc]initWithObjects:
                              [UIImage imageNamed:@"cat_blink0000.png"],
                              [UIImage imageNamed:@"cat_blink0001.png"],
                              [UIImage imageNamed:@"cat_blink0002.png"],
                              nil];

[self.imageView startAnimating];
}

Upvotes: 1

Amit Tandel
Amit Tandel

Reputation: 883

You can do it with UIView's hidden property. imageView.hidden = true;

Upvotes: 1

Related Questions