CABasicAnimation 哪个循环,但每次都转到不同的值?

CABasicAnimation which loops, but goes to different values each time?

假设你有一个

anime.repeatCount = Float.greatestFiniteMagnitude

它在值之间来回动画一些东西..

2  9  2  9  2  9  2  9  2  9  2  9 etc

但你想要的是

2  9  3  7  3  8  1  9  3  8  1  7 etc

因此 - 每次将 .fromValue.toValue 更改为稍微随机的值。

事实上,如果您每次都更改 from 和 to 值...

事实上 你是否必须放下动画并开始一个新的动画??

(因此,您将使用 setCompletionBlock 并执行此操作。)

或者,你能不能把它设置成永远循环,但是,每次都改变目标??有办法吗?

动画对象在添加到层后会被复制,因此之后对其进行的任何修改都不会传播到渲染树。见 documentation for add(_:forKey:).

换句话说,一旦动画被添加到图层中,您就无法再对其进行修改。相反,你会删除它并添加一个新的动画。


有一些 "tricks" 可以使它看起来像一系列随机值 — 例如关键帧动画或具有不同持续时间的多个附加动画 — 但其中 none 实现了实际的动画无限随机值。

要做到这一点,您最好在前一个动画无限期地结束后添加一个新动画。