UIView 的旋转与缩放以及同时应用两种效果(二)

UIView 的旋转与缩放以及同时应用两种效果(一)中,我们介绍了对UIView进行缩放与旋转的几种方法,这篇文章讲继续这些方法的具体应用的探讨。

我们考虑这样一种需求:对UIView同时进行缩放和旋转(以0.5倍等比缩放和45度旋转为例)。
在我自己的实践中,最开始的想法很简单,CGAffineTransformMakeScale(0.5, 0.5)进行缩放,接着使用CGAffineTransformMakeRotation (M_PI_2)进行旋转,问题马上出来了,view并不会在缩放的同时进行旋转,而是只应用了最后的旋转效果。
一番研究之后,找到了可行的解决方案,即:

分别使用CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)CGAffineTransform CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)替换上面的两个方法,具体代码如下:

1
2
view.transform = CGAffineTransformScale(view.transform, 0.5, 0.5);
view.transform = CGAffineTransformRotate (view.transform, M_PI_2);

到此,我们在缩放的同时旋转的目的已经达到,但探索的脚步还要向前,新的问题是:

如何移动应用了CGAffineTransform效果的view?

让我们在如何移动应用了CGAffineTransform效果的UIView里继续探讨

热评文章