使图像更“流畅”地移动

时间:2012-08-04 04:19:57

标签: objective-c ios cocoa-touch uiimageview

我想制作一个IBAction,当被调用时,图像会“流畅地”移动一定数量的像素。我现在有一个让图像向左移动10个像素,但它只是传送到那里。我希望图像能够移动,就像它的行走并没有神奇地在那里结束一样。

这就是我所拥有的:

- (IBAction)moveImageLeft:(id)sender
{
    y = y + 10;
    myImageView.frame = CGRectMake(x, y, 45, 56);   
}

2 个答案:

答案 0 :(得分:5)

@ 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
    }
}];

答案 1 :(得分:2)

[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];