NielsKuil
NielsKuil

Reputation: 106

Move an uiimageview animated

How could I make a UIImage move from the bottom of the screen, to the top of the screen in 20 seconds (about 35 pixels per seconds) I don't mean you should drag it by yourself, but it should automatically move to the top. Thank you

Upvotes: 7

Views: 11869

Answers (2)

WhiteTiger
WhiteTiger

Reputation: 1691

If I understand it you can do an animation of your own object, in this case try the beginAnimation

...
initial position

[UIView beginAnimation];
[UIView setAnimationDuration:dim/35.];
[UIView setAnimationCurve:[UIViewAnimationCurveLinear];

your animation

[UIView commitAnimations];
...

with this calculation dim/35 calculations by the second place to get your animation 35px / s

Upvotes: 3

Malaxeur
Malaxeur

Reputation: 6043

Firstly, apple doc is your friend. All of the information I'm giving you here is derived from this. Apple also provides a LOT of sample code, and you should definitely take a look at it.

The way you can (easily) accomplish this is using UIView animations. Assuming that you have a UIImageView for your image, you can use the animateWithDuration:(NSTimeInterval)duration animations:... method.

For example:

[UIView animateWithDuration:10.0f animations:^{
    //Move the image view to 100, 100 over 10 seconds.
    imageView.frame = CGRectMake(100.0f, 100.0f, imageView.frame.size.width, imageView.frame.size.height);
}];

You could get fancier by adding more and more options to the animation, getting a completion block, etc. This is all achieved with variations of the 'animateWithDuration' method. There are tons of tutorials on UIView animations out there, and tons of documentation.

If you don't want to use blocks (the ^{ ...code...} bit above) you can run your animation like this:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:10.0f];
imageView.frame = ...
[UIView commitAnimations];

Upvotes: 19

Related Questions