В некоторых свойствах вы можете управлять delayFactor, чтобы добавить анимацию для замены предыдущей цели.
let animView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 100, height: 200))
animView.backgroundColor = UIColor.green
animator = UIViewPropertyAnimator.init(duration: 5.0, curve: UIView.AnimationCurve.easeInOut)
view.addSubview(animView)
animator.addCompletion { (position : UIViewAnimatingPosition) in
if position == UIViewAnimatingPosition.end{
animView.center = CGPoint.init(x: 100, y: 300)
}
}
animator.addAnimations({
animView.center = CGPoint.init(x: 600, y: 300)
})
animator.addAnimations({
animView.center = CGPoint.init(x: 200, y: 200)
}, delayFactor: 0.1)
animator.addAnimations({
animView.center = CGPoint.init(x: 300, y: 600)
}, delayFactor: 0.5)
animator.addAnimations({
animView.center = CGPoint.init(x: 400, y: 400)
}, delayFactor: 0.9)
animator.startAnimation()