individualtermite
individualtermite

Reputation: 3755

Animating a UIView To A CGPoint

I am wondering how I would go about animating a UIView's to a specific CGPoint. The following is what I have so far (which doesn't work in it's current state):

#define MOVE_ANIMATION_DURATION_SECONDS 2

NSValue *pointValue = [[NSValue valueWithCGPoint:point] retain];
[UIView beginAnimations:nil context:pointValue];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:MOVE_ANIMATION_DURATION_SECONDS];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView commitAnimations];

Upvotes: 0

Views: 1813

Answers (3)

Adam Wright
Adam Wright

Reputation: 49376

If you're targeting 10.5 or above, you can use Core Animation via the animator proxy added to NSView. Try

[[someView animator] setFrame: someNewFrame];

Upvotes: 0

fbrereto
fbrereto

Reputation: 35925

Try:

#define MOVE_ANIMATION_DURATION_SECONDS 2

[UIView beginAnimations:nil context:pointValue];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:MOVE_ANIMATION_DURATION_SECONDS];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];

CGRect frame = myUIViewObject.frame;
frame.origin = point;
myUIViewObject.frame = frame;

[UIView commitAnimations];

Upvotes: 1

slf
slf

Reputation: 22767

After the begin, but before the commit, change the value on your UI View.

Upvotes: 1

Related Questions