使用CATransform3D查看与另一个视图重叠

时间:2013-07-16 07:58:58

标签: iphone ios objective-c core-graphics quartz-graphics

我是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会切换视图,这会在子视图数组中显示它们。那是在转型之前 Before transformation

那是在转型之后。

enter image description here

我只需要转换imageview,而不需要覆盖其他视图。我怎么能这样做?

PS。对不起英文和大图片不好。

1 个答案:

答案 0 :(得分:2)

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

试试这个:

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

这将推回你的图层,它不会相交。

希望它有所帮助。