我有一个UIImageView我想漂浮到后台。它应该在它沿着z轴移动并向中心会聚时推卸,因为你想象的东西远离你。
我尝试了这段代码
theImageView.layer.transform = CATransform3DTranslate(theImageView.layer.transform,1,1,
-100);
这个
theImageView.layer.transform = CATransform3DTranslate(theImageView.layer.transform,0, 0,
-300);
但是图像完全相同。核心图形中不可能出现这种情况吗?
如果通过CATransform无法处理此问题,人们如何处理?使用某种黑客代替缩放?
非常感谢 -code
答案 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动画层文档,它是使用核心图形的一种非常强大的方式。
同时检查上述链接中的提供图层内容。