【问题标题】:CATransformLayer, 3D rotation - sublayers disappear at certain anglesCATransformLayer,3D 旋转 - 子层在某些角度消失
【发布时间】:2014-04-13 12:09:41
【问题描述】:

我有一个 CATransformLayer,其中有几个 CAShapeLayer 作为其子级。 CAShapeLayers 位于 3D 空间中的不同 z 位置。一旦我在 3D 中旋转整个场景,一些 CAShapeLayers 会以某些角度消失,但它们不应该。很明显,它们仍然应该在屏幕上可见。

当进一步旋转时,它们会重新出现。

我可以做些什么来确保我的图层在它们应该在屏幕上始终可见?


这是一个小型演示项目,可以很好地说明问题。我也应该说我是通过调整transform的m34来使用透视的。

设置 0 是身份+视角 设置 1 和 2 在旋转方面非常接近,只是在一个设置中圆圈消失了,而在另一个设置中则没有

https://dl.dropboxusercontent.com/u/40859730/Disappearing.zip

【问题讨论】:

  • 你能举例说明什么时候发生这种情况,什么时候没有发生。另外,您的层层次结构看起来如何?
  • 层层级为:CATransformLayer --> CALayer --> CAShapeLayer。每个级别一个。试图举一个非常清楚发生了什么的例子。
  • 我添加了一个小演示项目。希望有帮助;)

标签: 3d core-animation catransform3d


【解决方案1】:

我发现你必须设置 CATransformLayer 的所有子层的 frame 属性,以使它们不会消失或有错误的 z-Ordering。

虽然这导致了我的下一个问题 - 设置框架时性能显着下降: CATransformLayer - Performance issues when setting frame of sublayers

【讨论】:

    猜你喜欢
    • 2022-07-23
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多