iOS动画对象返回原始位置

sar*_*nak 9 animation position core-animation ios swift

我正在尝试使用CABasicAnimation在按钮Tap上对UIView对象的位置进行动画处理。该对象已设置动画并移动到“至”位置,但在动画结束后返回到原始位置。我想保留动画结束后视图对象的位置。这是执行动画的代码片段。viewObject是我要设置动画的对象。

let animation = CABasicAnimation(keyPath: "position")
animation.timingFunction = CAMediaTimingFunction(controlPoints: 0.86, 0, 0.07, 1.0)
animation.duration = 0.5
animation.fromValue = NSValue(cgPoint: CGPoint(x: viewObject.center.x, y: viewObject.center.y))
animation.toValue = NSValue(cgPoint: CGPoint(x: viewObject.center.x + 64, y: viewObject.center.y))
viewObject.layer.add(animation, forKey: "position")
Run Code Online (Sandbox Code Playgroud)

Moh*_*diq 7

在添加动画之前添加以下行

animation.isRemovedOnCompletion = false
animation.fillMode = kCAFillModeForwards
Run Code Online (Sandbox Code Playgroud)

迅速

animation.fillMode = .forwards
animation.isRemovedOnCompletion = false
Run Code Online (Sandbox Code Playgroud)


Sau*_*ain 7

请添加以下代码:

目标C:

animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
Run Code Online (Sandbox Code Playgroud)

斯威夫特4:

animation.fillMode = .forwards
animation.isRemovedOnCompletion = false
Run Code Online (Sandbox Code Playgroud)