Shymaa Othman
Shymaa Othman

Reputation: 239

Animating UIImageView frame by frame

I have an idea about how to add animated UIImageView using frame by frame method BUT my question is about How to animate UIImageView ALREADY added on view controller storyboard as IBOutlet UIImageView .

what will be changed at this peace of code ?!

NSArray *myImages = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"bookmark1.png"],
                         [UIImage imageNamed:@"bookmark2.png"],
                         [UIImage imageNamed:@"bookmark3.png"],
                         [UIImage imageNamed:@"bookmark4.png"],
                         [UIImage imageNamed:@"bookmark5.png"],nil];

    myAnimatedView = [UIImageView alloc];

   [myAnimatedView initWithFrame:CGRectMake(0, 0, 131, 125)];

    myAnimatedView.animationImages = myImages;

    myAnimatedView.animationDuration = 0.25;

    myAnimatedView.animationRepeatCount = 1;

    [myAnimatedView startAnimating];

    [self.navigationController.view addSubview:myAnimatedView];

I want to animate this image like that over my viewController

http://imageshack.us/a/img717/3051/bookmarkl.gif

Upvotes: 4

Views: 5630

Answers (2)

dan_fides
dan_fides

Reputation: 324

It's even easier. First, add in .h file:

@property (nonatomic, retain) IBOutlet UIImageView *iV;

After, connect this outlet to the actual UIImageView on your storyboard. Change your code:

iV.animationImages = myImages;
iV.animationDuration = 0.25;
iV.animationRepeatCount = 1;
[iV startAnimating];

And that's all. Hope this helped

p.s. And yes, don't forget iV = nil; in - (void)viewDidUnload method

UPD: added

[self performSelector:@selector(animationDone) withObject:nil afterDelay:0.25];

After startAnimating call, and obviously added animationDone method:

- (void)animationDone {
    [iV stopAnimating];
    [iV setImage:[UIImage imageNamed:@"bookmark5.png"]];
}

Upvotes: 5

KDaker
KDaker

Reputation: 5909

Well it will be pretty much the same. You dont need to allocate your image view [[UIImageView alloc] init] nor do you need to add it to the viewController. The rest is the same.

Upvotes: 0

Related Questions