同时操作UIView层的CATransform3D和UIView的CGAffineTransform

时间:2013-11-22 18:36:25

标签: ios uiview core-graphics core-animation

这可能听起来像一个奇怪的问题,但我想要做的并不是很奇怪。我目前正在通过视图的CGAffineTransform调整UIView的大小,如下所示:

self.selectedController.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, resizeRatioValue, resizeRatioValue);

其中resizeRatioValue是介于0.7-1.0之间的值,具体取决于手势的位置。这非常有效。通过平移手势,我能够精美地缩小我的视野。

现在,我想补充一点。随着视图缩小,我想对视图应用旋转(类似于coverflow效果),以​​便它同时旋转和收缩

我可以使用this代码轻松旋转视图:

float angle = 45.0 * progressRatio;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / 2000; // Perspective
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform,
                                                      1 * angle / (180.0 / M_PI), 0.0f, 1.0f, 0.0f);
self.selectedController.view.layer.transform = rotationAndPerspectiveTransform;

但是当我将这两者放在一起时,它就是其中之一。无论哪一个出现在第二个是有效的。我不能让他们共存。

我能做些什么才能让它们一起工作?或者是否有一种完全不同的方法更适合我想做的事情?

0 个答案:

没有答案