Iphone 创建平面上矩形的透视图

Iphone 创建平面上矩形的透视图,iphone,core-animation,quartz-graphics,Iphone,Core Animation,Quartz Graphics,我已经在objective-c中工作了一段时间,但我还没有真正需要(直到现在)深入研究核心动画和图形操作 我目前有四个UIImageView,我想将它们设置为动画,使它们看起来像是躺在平面上。我的意思是,它们将以矩形开始-在屏幕上不变形且平坦,但将动画化为倾斜的透视图,使其看起来像是坐在平坦的表面上 我相信CATTransferM3D是我需要做的,我已经阅读了大量的文档,这些文档都指向使用.m34创建正确的透视图。我就是不能让它工作。下面是一段代码,我正使用它来尝试使图像倾斜。当我使用下面的代码

我已经在objective-c中工作了一段时间,但我还没有真正需要(直到现在)深入研究核心动画和图形操作

我目前有四个UIImageView,我想将它们设置为动画,使它们看起来像是躺在平面上。我的意思是,它们将以矩形开始-在屏幕上不变形且平坦,但将动画化为倾斜的透视图,使其看起来像是坐在平坦的表面上

我相信CATTransferM3D是我需要做的,我已经阅读了大量的文档,这些文档都指向使用.m34创建正确的透视图。我就是不能让它工作。下面是一段代码,我正使用它来尝试使图像倾斜。当我使用下面的代码时,仅仅是为了尝试扭曲图像,它似乎将其截断,而不是显示正确的透视图

CATransform3D transform = CATransform3DIdentity; 
transform.m34 = -1.0f / 700.0f;
// Perform other transforms
transform = CATransform3DRotate( transform,
    degreesToRadians(45.0f), 0.0f, 1.0f, 0.0f);

[layer setTransform:transform];

我可以很好地处理动画,但我很难使最终图像倾斜,使其看起来正确。有人对如何实现这一点有什么建议或示例吗?

我觉得动画有点歪。尝试使用m34因子进行实验,使其更倾斜(将其设置为较低的值,如-1.0f/200.0f)。只要尝试一下,你最终会做对的。如果希望旋转角度更大,可以将旋转角度更改为45度以外的角度

如果您的变换根本不倾斜,那么可能是您的其他变换之一正在覆盖该变换(即您正在使用一个Make transform调用)。如果是:尝试将transform.m34赋值移动到应用转换之前的最后一件事