0

IBAction呼び出されると、画像が一定量のピクセルを「滑らかに」移動するようにしたいと考えています。画像を10ピクセル左に移動させるものがありますが、そこにテレポートするだけです。魔法のようにそこに行き着くのではなく、まるで歩いているように、画像を移動させたいと思います。

ここに私が持っているものがあります:

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

2 に答える 2

5

@ディンプルの答えは正しいです。ただし、参考までに、これを行う別の方法を次に示します。これはアニメーション ブロックと呼ばれ、私の意見では、アニメーション プロセス全体が非常に簡単になります。

[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
    }
}];
于 2012-08-04T05:46:11.797 に答える
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];
于 2012-08-04T04:29:42.723 に答える