iphone - View 与 CATransform3D 重叠另一个 View

标签 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 穿过 View ,位于 subview 数组中。这是改造前 Before transformation

那是改造后的样子。

enter image description here

我只需要变换 imageview,而不重叠其他 View 。我该怎么做?

附言。抱歉英语不好,图片太大。

最佳答案

@Padavan,这里看起来您的 Layer 的 Z 轴相交。

试试这个:

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

这会将您的图层推回并且不会相交。

希望对您有所帮助。

关于iphone - View 与 CATransform3D 重叠另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671082/

相关文章:

javascript - 在 iPhone 上单击延迟并抑制输入焦点

iPhone - 将 UIBezierPath 复制到 CGPath 并渲染为原始路径

ios - 传输安全已阻止明文 HTTP

objective-c - 如何使 for 循环按照与 NSLog(@"%@", arrData) 相同的顺序进行迭代

iphone - MOV 播放无法使用带有 MPMoviePlayerController 的 UIImagePickerController

boolean 值的Objective-c dealloc

iphone - 文本长度等于检查

iphone - 如何评估 GPS 信号强度? (苹果手机)

ios - 统一firebase ios错误

ios - 如何匹配静态 UITableView 中的默认 UITableViewCell X 位置/前导约束?