Ios 为什么转换后的UIView与层次结构中较高的其他视图重叠?

Ios 为什么转换后的UIView与层次结构中较高的其他视图重叠?,ios,objective-c,cocoa-touch,uiview,catransform3d,Ios,Objective C,Cocoa Touch,Uiview,Catransform3d,我有一个视图,我对其图层应用了变换-改变了m34字段,在x轴上旋转它,并在x轴和y轴上缩放它。然后我将这个视图添加到一个更大的superview中。我的问题是,我添加到更大的superview中的每个其他视图都会被转换后的视图隐藏或重叠(如果新视图的帧与转换后的视图的帧相交),即使新视图在层次结构中的位置高于转换视图,并且这些新视图被添加到较大superview的子视图数组的末尾。你知道这种行为背后的原因吗?:-)非常感谢 3D变换用于生成伪3D。在这个3D空间中,你的图层与其他图层重叠。要更改

我有一个视图,我对其图层应用了变换-改变了m34字段,在x轴上旋转它,并在x轴和y轴上缩放它。然后我将这个视图添加到一个更大的superview中。我的问题是,我添加到更大的superview中的每个其他视图都会被转换后的视图隐藏或重叠(如果新视图的帧与转换后的视图的帧相交),即使新视图在层次结构中的位置高于转换视图,并且这些新视图被添加到较大superview的
子视图
数组的末尾。你知道这种行为背后的原因吗?:-)非常感谢

3D变换用于生成伪3D。在这个3D空间中,你的图层与其他图层重叠。要更改其z-pozition,请使用CAlayer的属性

@property CGFloat zPosition;
图层在z轴上的位置。可动画化。的默认值 此属性为0。更改此属性的值将更改 屏幕上各层的前后顺序。这可能会影响 框架矩形重叠的图层的可见性。它的价值是什么 属性是用点来衡量的


视图层次结构就像一系列的纸张——它们可以“在上面”,但没有真正的深度。一旦你把一个3D变换放在一个图层上,它就会有一定的深度,如果你绕着x轴旋转它,它就会突出在其他视图的前面

可以尝试调整图层的z位置,将其移动到其他视图后面