我已经在objective-c工作了一段时间,但我并没有真正需要(直到现在)深入研究核心动画和图形操作。
我目前有四个UIImageViews,我想动画到一个位置,使它们看起来像是躺在平坦的表面上。我的意思是它们将以矩形开始 - 在屏幕上不失真和平坦,但会生成歪斜的视角,使它看起来像是坐在平坦的表面上。
我相信CATransform3D是我需要做的,并且阅读了许多文档,这些文档都指向使用.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];
我可以很好地处理动画,但是我无法将最终图像倾斜以使其看起来正确。任何人都有关于如何实现这一目标的任何建议或样本?
答案 0 :(得分:0)
动画看起来偏向我。尝试使用m34因子使其倾斜更多(将其设置为较低的值,如-1.0f / 200.0f)。只是试验,你最终会做对。如果你想让它更倾斜,你可以将旋转更改为45度以外的其他值。
如果您的变换完全没有偏斜,那么您的其他变换之一可能会覆盖变换(即您正在使用其中一个Make变换调用)。如果是这样:尝试在应用转换之前将transform.m34赋值移动到最后。