我的CAlayers具有不同的z深度,我想将其转换为z深度以查看我尝试使用此方法进行的所有图层:
CATransform3D transform = CATransform3DMakeTranslation(0, 0,-50 );
rootLayer.sublayerTransform = transform;
但没有变化
我尝试使用这种方法
CATransform3D transform = CATransform3DRotate(trackball->baseTransform, 30, 30 , 0 , 0 );
rootLayer.sublayerTransform = transform;
for (CALayer* layer in rootLayer.sublayers)
{
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@"zPosition"];
theAnimation.fromValue=[NSNumber numberWithFloat:-40]; // [NSNumber numberWithFloat:frandom(800, 400)];
theAnimation.toValue=[NSNumber numberWithFloat:200]; // [NSNumber numberWithFloat:frandom(-300, -100)];
theAnimation.duration=8;
theAnimation.repeatCount = 1e100;
[layer addAnimation:theAnimation forKey:@"zPosition"];
}
它沿y方向移动
注意:iPad的方向是横向。
最佳答案
恐怕您提供的代码无法发现问题
假设我们具有以下结构
-> rootLayer
-> sublayer1
-> sublayer2
-> sublayer3
...
-> sublayerN
然后,为了显示
sublayer2
,您需要将zPosition
更改为sublayer1
,而不是rootLayer
关于objective-c - 可以在iOS中将CALayer转换为z位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11622322/