我想IBAction
在调用时使图像“流畅地”移动一定数量的像素。我现在有一个可以让图像向左移动 10 个像素,但它只是一种传送到那里。我希望图像可以移动,就像它的行走不会神奇地结束一样。
这是我所拥有的:
- (IBAction)moveImageLeft:(id)sender
{
y = y + 10;
myImageView.frame = CGRectMake(x, y, 45, 56);
}
我想IBAction
在调用时使图像“流畅地”移动一定数量的像素。我现在有一个可以让图像向左移动 10 个像素,但它只是一种传送到那里。我希望图像可以移动,就像它的行走不会神奇地结束一样。
这是我所拥有的:
- (IBAction)moveImageLeft:(id)sender
{
y = y + 10;
myImageView.frame = CGRectMake(x, y, 45, 56);
}
@Dimple 的回答是正确的。但是,仅供参考,这是另一种方法。它被称为动画块,在我看来使整个动画过程变得更加容易。
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
y = y + 10;
myImageView.frame = CGRectMake(x, y, 45, 56);
}completion:^(BOOL finishedAnimating){
if (finishedAnimating == YES) {
NSLog(@"animation finished");//you can put your own completion handler events here
}
}];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
y = y + 10;
myImageView.frame = CGRectMake(x, y, 45, 56);
[UIView commitAnimations];