UIViewPropertyAnimator 开头有短动画片段
Posted
技术标签:
【中文标题】UIViewPropertyAnimator 开头有短动画片段【英文标题】:UIViewPropertyAnimator with short animation segments in the beginning 【发布时间】: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 秒?
【问题讨论】:
【参考方案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
可以做到这一点吗?
我不知道,但这不是你问的。以上是关于UIViewPropertyAnimator 开头有短动画片段的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 UIViewPropertyAnimator 中使用“unowned”
完成块内的 UIViewPropertyAnimator 状态?