在核心图形中沿z轴向下移动图像

时间:2010-11-10 00:10:26

标签: iphone objective-c

我有一个UIImageView我想漂浮到后台。它应该在它沿着z轴移动并向中心会聚时推卸,因为你想象的东西远离你。

我尝试了这段代码

theImageView.layer.transform = CATransform3DTranslate(theImageView.layer.transform,1,1, 
-100);

这个

theImageView.layer.transform = CATransform3DTranslate(theImageView.layer.transform,0, 0, 
-300);    

但是图像完全相同。核心图形中不可能出现这种情况吗?

如果通过CATransform无法处理此问题,人们如何处理?使用某种黑客代替缩放?

非常感谢 -code

2 个答案:

答案 0 :(得分:2)

尽管Core Animation在3D空间中工作,但默认情况下它不使用透视。要创建透视变换,您必须直接修改变换矩阵的成员:

CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -2000;  // this value affects the "amount" of perspective

(参见例如http://watchingapple.com/2008/04/core-animation-3d-perspective/)。

答案 1 :(得分:0)

不要使用UIImageView,只需使用您添加为当前视图图层的子图层的新CALayer。将CALayer的contents属性设置为UIImage的CGImageref。

这是Core动画层文档,它是使用核心图形的一种非常强大的方式。

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html#//apple_ref/doc/uid/TP40006082-SW1

同时检查上述链接中的提供图层内容。