转载自:http://www.travelchu.com/2014/08/13/uiview-%E7%9A%84%E6%97%8B%E8%BD%AC%E4%B8%8E%E7%BC%A9%E6%94%BE%E4%BB%A5%E5%8F%8A%E5%90%8C%E6%97%B6%E5%BA%94%E7%94%A8%E4%B8%A4%E7%A7%8D%E6%95%88%E6%9E%9C%EF%BC%88%E4%BA%8C%EF%BC%89/
在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)替换上面的两个方法,具体代码如下:
到此,我们在缩放的同时旋转的目的已经达到,但探索的脚步还要向前,新的问题是:
如何移动应用了CGAffineTransform效果的view?
让我们在如何移动应用了CGAffineTransform效果的UIView里继续探讨