什么时候应该使用CATransformLayer?
我已经阅读了文档和几个例子,但仍然无法理解何时完全使用CATransformLayer
。 一个普通的CALayer
在z = 0
平面上展平了所有东西,但这不是CATransformLayer
function吗? math解释将是非常有帮助的。
要充分了解CALayer和CATransformLayer之间的区别,请阅读本文
这是解释如何使用CATransformLayer
的最好的教程。
但是简单地说,
考虑一个场景( CAlayer instance
),我们在同一个X,Y坐标上创build4个平面,但是不同的Z坐标,并将其作为子subLayers
添加到场景中,并以某个angular度旋转场景。
所以,我们可能期望它看起来像,
但是,看起来像,
这是因为CALayer无法pipe理3D层次结构的深度,只能将场景平铺到单个Z级别。 为了纠正这个深度问题,我们使用CATransformLayer
,它有深入的理解和基于它的渲染。
注意 :图片来自文章。
一个CATransformLayer被用来在3D中转换它的子图层,并且不会压扁它们。
与正常层不同,变换层在Z = 0时不会将其子层投影(即变平)到平面中。
如果你想在一组图层上进行变换,但是你不想单独做每个单独的变换,因为你想要在一个地方改变变换的灵活性……有点像在OpenGL中的相机/世界/模型转换。
这就是说,我从来没有机会使用它,因为我从来没有试图在LayerKit中做真正的3D。 我假设几年前在WWDC上使用了一个堆栈演示,可能有代码示例。
如果我发现自己现在开始使用CATransformLayer,我会切换到SceneKit,但那还不是iOS。
- 核心animation使图层水平翻转
- 我怎么能打字检查CGColor / CGPath?
- 在iOS上使用resizableImages时避免混合图层
- UINavigationController:在相反的方向popup视图控制器
- Gradient Layer over ImageView重用
- swift animateWithDuration在iOS 7中不起作用
- 使用animateKeyframesWithDuration在屏幕上创build一个连续旋转的正方形
- iPhone卡像翻转animation
- 创build一个类似于xCode中的Solar Weather Application的animation渐变背景