0

想象一下UIViewPropertyAnimator设置如下:

let animator = UIViewPropertyAnimator(duration: 2, curve: .easeInOut) { 
   myView.center = newCenterPoint
}

为此,我可以添加另一个以延迟开始,以主要结束的动画:

animator.addAnimation ({
   myView.alpha = 0.5
}, withDelayFactor: 0.5)

所以上面从 1 秒开始并持续 1 秒以完成主要。

问题

有没有办法添加一个UIViewPropertyAnimator从一开始就开始的动画,但持续时间只是主要动画师的一小部分?从 0 开始并仅持续 1 秒?

4

1 回答 1

1

为什么不直接使用另一个动画师?两个动画师可以同时作用于同一个视图,只要他们的动画不冲突:

    let animator = UIViewPropertyAnimator(duration: 2, curve: .easeInOut) {
        self.myView.center.y += 100
    }
    let animator2 = UIViewPropertyAnimator(duration: 1, curve: .easeInOut) {
        self.myView.backgroundColor = .red
    }
    animator.startAnimation(); animator2.startAnimation()

动画将视图向下移动两秒钟,同时在第一秒内将视图变为红色。

(说了这么多,在现实生活中,我可能会为此使用 CAAnimationGroup,而不是属性动画师。)

于 2021-05-10T02:25:04.833 回答