私は現在、答えが見つからないように見える問題に不満を感じています。ユーザーが制御する UIImageView があり、押す方向に応じて左右に 20 ピクセル移動します。同時に、別のボタンを押して NSArray でアニメーション化しようとしています。ただし、UIImageView をアニメーション化するたびに、位置がリセットされます。
たとえば、右に 80 ピクセル移動すると、アニメーション ボタンが押されるとすぐに、アニメーション前の元の位置に戻ります。それは非常に腹立たしいです。これが私のコードです:
('pos' は (20,0) ピクセルに設定された CGPoint です)
-(IBAction)moveleft {
player.center = CGPointMake(player.center.x-pos.x,player.center.y+pos.y);
}
-(IBAction)moveright {
player.center = CGPointMake(player.center.x+pos.x,player.center.y+pos.y);
}
-(IBAction)animove {
isMove = TRUE;
player.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"move0002.png"],
[UIImage imageNamed:@"move0003.png"],
[UIImage imageNamed:@"move0004.png"],
[UIImage imageNamed:@"move0005.png"],
[UIImage imageNamed:@"move0006.png"],
[UIImage imageNamed:@"move0007.png"],
[UIImage imageNamed:@"move0008.png"],
[UIImage imageNamed:@"move0009.png"],
[UIImage imageNamed:@"move0010.png"], nil];
player.animationDuration = 0.35;
player.animationRepeatCount = 1;
[player startAnimating];
}
結論として、両方とも正常-(IBAction)moveleft
に-(IBAction)moveright
動作します。
-(IBAction)animove
、しかし一度animove
実行されると、UIImageViewplayer
は左または右の移動が行われる前の元の位置に戻ります。
どんな助け/提案も大歓迎です。