文档并没有真正谈论技术上的内容。
fadeInAnimation.fillMode = kCAFillModeForwards;
我真的没有看到这种效果。我有一个alpha设置为0.0的视图。然后我淡入它。但是当我取消注释时,没有任何变化。相同的行为。我想了解这个fillMode真正做了什么。
答案 0 :(得分:47)
来自CAMediaTiming protocol documentation:
确定接收者是否 演示文稿被冻结或删除一次 它的有效期已经完成。
这决定了动画结束时会发生什么。默认情况下,它设置为kCAFillModeRemoved,这意味着动画完成时动画更改将被撤消。如果将其切换为kCAFillModeForwards,则动画引起的更改将会消失。
请注意,您可能还需要将removedOnCompletion属性设置为NO以防止移除动画,这会使此设置无效。
答案 1 :(得分:6)
让我给出一个更明确的答案:
虽然在外观上将动画的fillMode
属性设置为kCAFillModeForwards
(或kCAFillModeBoth),同时将removedOnCompletion
设置为NO
可以在动画完成时将图层保持在最终状态但fillMode
的使用不是设计方式。如果你有其他动画添加到同一个keyPath
(顺便说一下,保持动画最终状态的正确方法是更改属性值以匹配动画的最终帧。)
fillMode
真正使用的内容与分组动画中的子动画有关,因此您可以指定所需状态的特定子动画