1

我是 CATransform3D 的新手。我很愿意使用这段代码在我的 UIImageView 上制作 3D 转换效果。

CALayer *layer = imageView.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, aSlider.value, xSlider.value, ySlider.value, zSlider.value);
layer.transform = rotationAndPerspectiveTransform;

我的问题是转换后的 UIImageView 穿过视图,位于子视图数组中。那是转型前 改造前

那是在转型之后。

在此处输入图像描述

我只需要转换 imageview,而不会重叠其他视图。我怎样才能做到这一点?

PS。抱歉英语不好和大图。

4

1 回答 1

2

@Padavan,这里看起来你的 Z 轴层是相交的。

试试这个:

CGFloat zOrigin = -100; // You can change this value as required.
layer.transform = CATransform3DMakeTranslation(0, 0,zOrigin);

这会将您的图层向后推,并且不会相交。

希望能帮助到你。

于 2013-07-16T09:16:06.660 回答