为什么动画会将对象带回到起始位置?

时间:2013-06-05 04:18:46

标签: iphone objective-c ipad animation

我有一个用户可以拖动的对象视图和一些启动动画的按钮。触摸按钮时动画开始,但所有对象都回到起始位置..为什么?

NSMutableArray *arrayAntaChiusura1 = [NSMutableArray array];

for(int i = 0; i <= 5; i++)
{
    [arrayAntaChiusura1 addObject:[UIImage imageWithContentsOfFile:
                                   [[NSBundle mainBundle]
                                    pathForResource: [NSString stringWithFormat:@"anta_sx%d", 6-i]
                                    ofType:@"png"]]];
}

UIImageView *immagineAntaChiusura1;

immagineAntaChiusura1 = [[UIImageView alloc] initWithFrame:CGRectMake(283, 82, 120, 130)];

immagineAntaChiusura1.animationImages = arrayAntaChiusura1;
immagineAntaChiusura1.animationDuration = tempo_ante;
immagineAntaChiusura1.animationRepeatCount = 1;
[immagineAntaChiusura1 startAnimating];
[self.view addSubview:immagineAntaChiusura1]; // i think this line is the problem

事先感谢你的帮助,我不能自己解决这个问题!

2 个答案:

答案 0 :(得分:0)

使用图像进行动画制作时,必须巧妙地将这些图像添加到阵列中。你的代码看起来很好。我怀疑的只有一行是:

[arrayAntaChiusura1 addObject:[UIImage imageWithContentsOfFile:
                               [[NSBundle mainBundle]
                                pathForResource: [NSString stringWithFormat:@"anta_sx%d", 6-i]
                                ofType:@"png"]]];

其他一切都很好。只需检查图像是否按顺序排列。

答案 1 :(得分:0)

我完全不明白你的问题,但是如果你想要连续动画对象,那么将重复计数设置为-1,等于无穷大,如下所示: -

UIImageView *immagineAntaChiusura1;

immagineAntaChiusura1 = [[UIImageView alloc] initWithFrame:CGRectMake(283, 82, 120, 130)];

immagineAntaChiusura1.animationImages = arrayAntaChiusura1;
immagineAntaChiusura1.animationDuration = 1.5;
immagineAntaChiusura1.animationRepeatCount = -1;
[immagineAntaChiusura1 startAnimating];
[self.view addSubview:immagineAntaChiusura1];