我正在使用 iOS 核心动画“CABasicAnimation”为 UIImageView 设置动画,对我来说一切正常,但唯一的问题是当我动画到该位置时,在完成动画后它会回到原来的位置。我该如何克服呢?我需要将 UIImageView 保持在移动位置。
注意:我见过很少有关于这个问题的成功答案,但我不知道为什么我的不像他们说的那样工作。
使用 CABasicAnimation 旋转 CALayer 后,图层跳回未旋转的位置
这是我的示例代码,
CGPoint endPt = CGPointMake(160, 53);
CABasicAnimation *anim5 = [CABasicAnimation animationWithKeyPath:@"position"];
[anim5 setBeginTime:CACurrentMediaTime()+0.4];
anim5.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
anim5.fromValue = [NSValue valueWithCGPoint:imgRef.layer.position];
anim5.toValue = [NSValue valueWithCGPoint:endPt];
anim5.duration = 1.5;
anim5.speed = 2;
[imgRef.layer addAnimation:anim5 forKey:@"position"];
//this is what other answers ask to do
[anim5 setFillMode:kCAFillModeForwards];
[anim5 setRemovedOnCompletion:NO];
顺便说一句[imgRef.layer setPosition:CGPointMake(160, 53)];
,因为我将动画延迟了 4 毫秒,所以对我没有帮助。