我使用iOS核心動畫「CABasicAnimation」爲UIImageView設置動畫,所有工作都適合我,但唯一的問題是當完成動畫後動畫到位置回到原來的位置。我怎麼能克服這個?我需要保持UIImageView移動位置。iOS「CABasicAnimation」在動畫完成後將組件移動到原始位置
注:我已經看到了幾個有關這方面的成功答案的問題,但我不知道爲什麼我的工作不像他們說的那樣工作。
After rotating a CALayer using CABasicAnimation the layer jumps back to it's unrotated position
這裏是我的示例代碼,
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];
BTW [imgRef.layer setPosition:CGPointMake(160, 53)];
不會幫我,因爲我推遲動畫與4毫秒。
有一個更好的(更簡單)的方法:http://oleb.net/blog/2012/11/prevent-caanimation-snap-back/ – omz
謝謝,omz,你的解決方案修復我的問題 –
我也謝謝! – skinsfan00atg