1. transform属性
在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度
常用的创建transform结构体方法分两大类
(1) 创建“基于控件初始位置”的形变
CGAffineTransformMakeTranslation(平移)
CGAffineTransformMakeScale(缩放)
CGAffineTransformMakeRotation(旋转)
(2) 创建“基于transform参数”的形变
CGAffineTransformTranslate
CGAffineTransformScale
CGAffineTransformRotate
补充:
在OC中,所有跟角度相关的数值,都是弧度值,180° = M_PI
正数表示顺时针旋转
负数表示逆时针旋转
提示:由于transform属性可以基于控件的上一次的状态进行叠加形变,例如,先旋转再平移。因此在实际动画开发中,当涉及位置、尺寸形变效果时,大多修改控件的transform属性,而不是frame、bounds、center 。
2.主要代码
//位移(不累加)234 //self.headImageView.transform=CGAffineTransformMakeTranslation(50, 200);235 //缩放236 //self.headImageView.transform=CGAffineTransformMakeScale(1.2, 10);237 //在原有的基础上位移(是累加的)238 //self.headImageView.transform=CGAffineTransformTranslate(self.headImageView.transform, 50, 50);239 //在原有的基础上进行缩放240 //self.headImageView.transform=CGAffineTransformScale(self.headImageView.transform, 1.5, 1.6);241 242 //在原有的基础上进行旋转243 if (rotate.tag) {244 //旋转角度为1/pi,逆时针245 self.headImageView.transform=CGAffineTransformRotate(self.headImageView.transform, -M_1_PI);246 }247 else248 {249 //旋转的角度为pi/2,顺时针250 self.headImageView.transform=CGAffineTransformRotate(self.headImageView.transform, M_PI_2);251 }