平常的开发过程中,当我们要改变视图的位置或者大小的时候,我们的第一反应一定是用 frame 这个属性去实现,但其实还有个更加简单的方法就是使用 transform  这个属性,一句代码就能完成。
1. 平移
括号中填写 x 和 y 移动数值。
| self.image.transform = CGAffineTransformMakeTranslation(10, 10);
 
 
 self.image.transform = CGAffineTransformTranslate(self.image.transform, 20, 0);
 
 | 
2. 缩放
括号中填写 x 和 y 缩放倍数。
| self.image.transform = CGAffineTransformMakeScale(2, 2);
 
 
 self.image.transform = CGAffineTransformScale(self.image.transform, 2, 2);
 
 | 
3. 旋转
括号中填写弧度 M_PI_4 = 45°(绕中心旋转)。
| self.image.transform = CGAffineTransformMakeRotation(M_PI_4);
 
 
 self.image.transform = CGAffineTransformRotate(self.image.transform, M_PI_4);
 
 | 
4. AnchorPoint 设定
因为缩放或旋转默认都是围绕视图的中心点来进行的,通过 AnchorPoint 的设定,可以改变缩放或旋转围绕的点,下面是修改方法。
| 
 
 
 
 
 - (void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view {
 CGPoint oldOrigin = view.frame.origin;
 view.layer.anchorPoint = anchorPoint;
 CGPoint newOrigin = view.frame.origin;
 CGPoint transition;
 transition.x = newOrigin.x - oldOrigin.x;
 transition.y = newOrigin.y - oldOrigin.y;
 view.center = CGPointMake (view.center.x - transition.x, view.center.y - transition.y);
 }
 
 | 
| 
 
 
 
 - (void)setDefaultAnchorPointforView:(UIView *)view {
 [self setAnchorPoint:CGPointMake(0.5f, 0.5f) forView:view];
 }
 
 | 
好了,大致就这几种,其中上下两种方法的区别就是,当多次调用那一句代码时,一个会一直从原点开始变化,而另一个会从当前位置继续开始变化。