ios - CAAnimation - 对“变换”的错误解释?
问题描述
我正在尝试理解 CAAnimation 的一些非常奇怪的行为。我设法将其归结为一个简单的复制案例:
- 创建一个简单
CAKeyframeAnimation
的keyPath="transform"
- 创建一个
CATransform3D
单位矩阵的任意倍数(0 或 1 除外)。让我们假设0.5I
这个例子,所以每个对角线条目都是 0.5。 - 将此矩阵设置为任意数量的帧的值。
- 将动画添加到某个视图的图层。
(对不起,我在 Xamarin 工作,所以很遗憾没有复制粘贴 Swift / ObjC 代码示例;我对这些语言的经验完全为零)。
如果您通过 ( ) 直接将我刚刚描述的变换分配给层,layer.transform = transform
它的行为与预期一样 - 没有任何反应。该矩阵是单位矩阵的倍数,因此经过齐次坐标除法后输入/输出点应该相同。然而,作为动画的关键帧,矩阵将图层缩放到其大小的一半(或您选择的任何因素)。
我很难理解为什么会发生这种情况,并希望有人能对这种情况有所了解。
解决方案
推荐阅读
- android - Whatsapp 音频分享
- java - 是否可以在 Java 代码中集成 R 算法?
- java - 如何使用 iText7 将 SVG 添加到 PDF
- php - mysql选择具有相同ID的行并按另一列排序
- powershell - CMD 仅使用多个参数之一启动 .exe
- video - 逐帧处理视频
- c++ - 解决方法 GCC 5.5 unordered_map 错误
- angularjs - 如果选择了另一行,Angularjs隐藏行
- java - Android Firebase,从 firebase 数据库中检索数据
- .net-core - Unix 上的 net core 启动过程