【问题标题】:UIViewPropertyAnimator with short animation segments in the beginningUIViewPropertyAnimator 开头有短动画片段
【发布时间】:2021-05-10 00:05:26
【问题描述】:

假设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 秒?

【问题讨论】:

    标签: ios swift xcode uiviewpropertyanimator


    【解决方案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,而不是属性动画师。)

    【讨论】:

    • 第二个动画师会减慢速度吗?我使用动画师的原因是让它随着平移手势一起进步。 CAAnimationGroup 可以做到这一点吗?
    • 我不知道,但这不是你问的。
    猜你喜欢
    • 2018-04-26
    • 2021-10-09
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2011-06-16
    相关资源
    最近更新 更多