gpt4 book ai didi

ios - 如何沿 z 轴移动 CALayers 并应用透视

转载 作者:行者123 更新时间:2023-12-01 19:01:31 24 4
gpt4 key购买 nike

我有一个包含几个子层的主 CALayer。我围绕 x 轴将主图层旋转了 89 度,所以我几乎看不到它(它现在几乎是屏幕中间的一个切片)。

CATransform3D moveToOrigin = CATransform3DMakeTranslation(-self.bounds.size.width / 2.0f, -self.bounds.size.height / 2.0f, 0.0);
CATransform3D rotateX = CATransform3DConcat(moveToOrigin, CATransform3DMakeRotation(DEGREES_TO_RADIANS(89.0), 1.0, 0.0, 0.0));
CATransform3D finalTransform = CATransform3DConcat(rotateX, CATransform3DMakeTranslation(self.bounds.size.width / 2.0f, self.bounds.size.height / 2.0f, 0.0));

mainLayer.transform = finalTransform;

现在我想沿 z 轴移动每个子层,使它看起来像一个层之间有间距的堆栈。不幸的是,我所看到的只是主层上的所有子层。
for (int i = 0; i < self.sublayers.count; i++) {
CALayer *aLayer = _layers[i];
transform = CATransform3DMakeTranslation(0.0, 0.0, 100 * i);
}

奇怪的是,沿着 x 或 y 轴移动就像一个魅力。
它与那个子层变换有关吗?

更改 zPosition 属性是否与使用 CATransform3D 沿 z 轴移动图层相同?

最佳答案

渲染图层时,它们通常会被展平,因此即使它们可能包含具有不同 Z 值的子图层,渲染的图层也会变平。但是,有一个层类没有这种行为,它被称为 CATransformLayer。 .它本身没有任何内容,但它也使子层保持完整。

关于ios - 如何沿 z 轴移动 CALayers 并应用透视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22536908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com