我试图理解的CAAnimation出现了一些非常奇怪的行为。我已经将其简化为一个简单的复制案例:
CAKeyframeAnimation
创建一个简单的keyPath="transform"
CATransform3D
,它是单位矩阵的任意倍数(0或1除外)。假设本示例为0.5I
,因此每个对角线项均为0.5。(对不起,我在Xamarin工作,所以很遗憾,没有复制粘贴的Swift / ObjC代码示例;我在这些语言上的经验完全为零)。
如果您将我刚刚描述的转换直接通过(layer.transform = transform
分配给图层,则其行为将达到预期的效果-不会发生任何事情。矩阵是单位矩阵的倍数,因此在除以齐次坐标后,输入/输出点应该相同。但是,作为动画的关键帧,矩阵会将图层缩放到其大小的一半(或您选择的任何因子)。
我为为什么会发生而感到困惑,希望有人能对此情况有所了解。