嗨,我完全对 CGAffineTransform 动画感到困惑。我要做的就是将精灵从右侧的位置移动到左侧的位置。当它停止时,我想“重置”它,即将它移回它开始的地方。如果应用程序退出(多任务处理),我想在开始时再次重置位置并重复动画。
这是我用来制作动画的..
[UIImageView animateWithDuration:1.5
delay:0.0
options:(UIViewAnimationOptionAllowUserInteraction |
UIViewAnimationOptionCurveLinear
)
animations:^(void){
ufo.transform = CGAffineTransformTranslate(ufo.transform, -270, 100);
}
completion:^(BOOL finished){
if(finished){
NSLog(@"ufo finished");
[self ufoAnimationDidStop];
}
}];
据我了解,CGAffineTransforms 只是在视觉上使精灵看起来像是被移动了,但实际上并没有移动它。因此,当我尝试使用“重置”位置时
ufo.center = CGPointMake(355, 70);
它什么也没做。
如果我打电话,我确实有一些工作
ufo.transform = CGAffineTransformTranslate(ufo.transform, 270, -100);
它重置。问题是如果我在动画中途退出应用程序,那么当它重新启动时,它不一定从头开始,也没有去正确的地方,它基本上会发疯!
有没有办法只删除应用到它的任何转换?我正在考虑只使用一个计时器,但是当这种方法应该起作用时,这似乎很愚蠢。我已经为此苦苦挣扎了一段时间,因此我们将不胜感激。
谢谢