想象一下你有一个
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
并执行此操作。)
或者,你可以将它设置为永久循环,但是,每次都改变目标吗?有办法吗?
答案 0 :(得分:1)
动画对象在添加到图层后会被复制,因此在此之后对其进行的任何修改都不会传播到渲染树。请参阅documentation for add(_:forKey:)
。
换句话说,一旦将动画添加到图层中,您就无法修改动画。相反,你会删除它并添加一个新的动画。
有一些"技巧"这可能使它看起来像一系列随机值 - 例如关键帧动画或具有不同持续时间的多个加法动画 - 但它们都没有实现无限随机值的实际动画。
为了实现这一点,一旦前一个动画无限期地完成,你最好添加一个新动画。