我目前对一个我似乎无法找到答案的问题感到沮丧。我有一个由用户控制的 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
会在进行左右移动之前移回其原始位置。
任何帮助/建议将不胜感激。