objective-c - 旋转 View 边缘的 CATransform3D 深度

标签 objective-c ios uiview 3d core-animation

我有一个旋转的 UIImageView。当它旋转到与用户成 90° 的位置时,很明显 View 没有任何深度。就像以 90° 角度看一张纸。

我正在使用:

// Rotate

CATransform3D rotationAndPerspectiveTransform2 = CATransform3DIdentity;
rotationAndPerspectiveTransform2.m34 = 1.0 / -400;
rotationAndPerspectiveTransform2 = CATransform3DRotate(rotationAndPerspectiveTransform2, M_PI, 1.0f, 0.0f, 0.0f);

我如何为我的 View 添加一些深度,以便当它达到 90° 时,它的边缘更像 3D 对象而不是平面 View ?

最佳答案

您可以在 CA 中设置 3D 层树,方法是将它们放置在 3D 空间中,每侧一层。因此,一个 3D 旋转立方体将有 6 层;每张脸一张。

如果您将所有这些层都设为 CATransformLayer (T) 的子层,则可以对 T 应用单个变换,例如,在 3D 空间中旋转整个结构。

无法“挤出”CALayer。

关于objective-c - 旋转 View 边缘的 CATransform3D 深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8555578/

相关文章:

ios - UIView removeFromSuperview 正在调用 didMoveToSuperview

iphone - NSMutableArray -init 与 +arrayWithCapacity :

ios - 缓存以 NSIndexPath 为键返回错误的 objectForKey

ios - 如何从另一个controlview swift 3重新加载tableview?

ios - 我如何在 Xcode 7.3 中启动非托管测试?

ios - swift ,iOS : How do I extract data from my firebase database?

ios - 当 UICollectionView 最初加载其数据时,我们如何获得可见的 Cell IndexPath

objective-c - 如何以非阻塞方式检查 iOS 上的网络可达性?

ios - 存储在序列化 View 中的子类 UILabel 不存储自定义变量

ios - 带有 CGAffineTransformMakeScale 的 UIView 动画会立即用十进制数更改大小