【问题标题】:How to rotate UIView in 3D?如何在 3D 中旋转 UIView?
【发布时间】:2015-07-16 17:09:28
【问题描述】:

我的任务很简单,但我无法理解 CATransform3DRotate。 我有 3 个高度和宽度相等的 UIImageView,我需要为左右项目设置一些转换以获得下一个结果: https://dl.dropboxusercontent.com/u/15196617/result.png

原始画面: https://dl.dropboxusercontent.com/u/15196617/original.png

我的消息来源:

CATransform3D transform = CATransform3DIdentity;
transform.m34 = -1.f / self.prevItemImageView.bounds.size.width;
transform = CATransform3DRotate(transform, (CGFloat) -(M_PI / 3.f), 0, 1.f, 0);
self.prevItemImageView.layer.anchorPoint = CGPointMake(1.f, 0.5f);
self.prevItemImageView.layer.transform = transform;

transform = CATransform3DIdentity;
transform.m34 = -1.f / self.nextItemImageView.bounds.size.width;
transform = CATransform3DRotate(transform, (CGFloat) (M_PI / 3.f), 0, 0.5f, 0);
self.nextItemImageView.layer.anchorPoint = CGPointMake(0.f, 0.5f);
self.nextItemImageView.layer.transform = transform;

这行不通。

【问题讨论】:

  • 你能详细说明一下吗?什么不工作?

标签: ios uiview transform catransform3d catransform3drotate


【解决方案1】:

您要做的是将带有更改的.m34 组件的转换应用到图像视图的超层,作为sublayerTransform。这就是使图像视图上的变换具有深度外观的原因。

这张图片最初是一个正方形。但它看起来是 3D 旋转的,因为它的超层有一个 sublayerTransform

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多