Android0077
Android0077

Reputation: 401

Objective c UIImageView animation

I am trying to take a UIImageView and hide it gradually from bottom to top.

What is the best and most efficient way to do it in Objective-C? I am looking into CABasicAnimation Class and Animation Class.

enter image description here

Upvotes: 0

Views: 768

Answers (2)

ShineWang
ShineWang

Reputation: 174

If you want know CoreAnimation deeply, I think you can use this:

CABasicAnimation *animationA=[CABasicAnimation animation];
animationA.keyPath=@"position.y";
animationA.fromValue=@0;
animationA.toValue=@250;
animationA.duration=3;
animationA.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[yourTestView.layer addAnimation:animationA forKey:@"basic"];
yourTestView.layer.position=CGPointMake(250, 50);

or if you want to only support IOS7, you can try learn UIAttachmentBehavior and UIDynamicItemBehavior to achieve more interactive animation.

Upvotes: 1

Fogmeister
Fogmeister

Reputation: 77661

All animations like this use Core Animation and can be done really simply using the block based animations.

For this you would do something like...

[UIView animateWithDuration:3
                 animations:^{
                     imageView.frame = CGRectMake(//the end frame of the image view
                 }];

This will then animate the change over the duration given. (3 seconds in this case).

There are other versions that you can find in the docs of UIView that give you more options like changing the animation curve or running some code on completion etc...

NOTE

This assumes you are not using Auto Layout. If you are using auto layout then the method is exactly the same but you need to change the constraints and then run [view layoutIfNeeded]; in the animations block.

Upvotes: 0

Related Questions