transform属性

transform属性

在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度常用的创建transform结构体方法分两大类

(1) 创建“基于控件初始位置”的形变

CGAffineTransformMakeTranslation(平移)

CGAffineTransformMakeScale(缩放)

CGAffineTransformMakeRotation(旋转) 

(2) 创建“基于transform参数”的形变

CGAffineTransformTranslate

CGAffineTransformScale

CGAffineTransformRotate

(3)CGAffineTransformIdentity

//属性能还原到 进行动画 之前的状态

self.transform = CGAffineTransformIdentity;

变形种类和CGAffine Transform 函数对照表

旋转          正数和负数 分别代表顺时针和逆时针

self.transform = CGAffineTransformRotate(self.transform, 180*(M_PI/180.0));  //此方法是在旋转后的基础上在继续旋转 能一老旋转

self.transform = CGAffineTransformMakeRotation(180*(M_PI/180.0)); // 单纯基于原始状态旋转 只能旋转一次

扩大/缩小

self.transform  = CGAffineTransformScale(self.transform, 2.0, 2.0); //此方法是在缩放后的基础上在继续缩放 能一老缩放

self.transform = CGAffineTransformMakeScale(2.0, 2.0); //单纯基于原始的状态缩放,只能缩放一次

左右反转

 self.transform = CGAffineTransformScale(self.transform, -1,1.0);

注:如果把后面的参数写成(self.transform, -2,2.0)  效果是反转的同事放大

self.transform = CGAffineTransformMakeScale(-1, 1.0); //效果是 只反转一次

上下反转  左右反转的效果同样适用于上下反转

self.transform = CGAffineTransformScale(self.transform, 1,-1.0);    

self.transform = CGAffineTransformMakeScale(1, -1.0);

平行移动   左负右正 上负下正  效果解释同旋转

self.transform = CGAffineTransformMakeTranslation(25.0, -25.0);

self.transform = CGAffineTransformTranslate(self.transform, 25.0, -25.0);

两个变形的复合

原文地址:https://www.cnblogs.com/zhaozhongpeng/p/4866821.html