为什么转换后的UIView会重叠在层次结构中更高的其他视图



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

3D转换用于制作伪3D。在这个3D空间中,你的图层与其他图层重叠。使用CAlayer的属性

来改变它的z位置
@property CGFloat zPosition;

层在z轴上的位置。可以做成动画。的默认值。这个性质是0。更改此属性的值将更改屏幕上图层的前后顺序。这会影响框架矩形重叠的图层的可见性。它的价值属性以点数计算。

视图层次结构就像一系列的纸——它们可以彼此"叠在一起",但是没有真正的深度。一旦你把一个3D变换放到一个图层上,这将会有一些深度,如果你绕着x轴旋转它,这将会在其他视图的前面伸出来。

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

最新更新