iOS开发之transform
transform主要应用于动画
1、让一个按钮每次向上移动100的距离
UIButton *head = (UIButton *)[self.view viewWithTag:10];
head.transform = CGAffineTransformTranslate(head.transform, 0, -100);
transform是一个状态,并不能改变控件的真实位置(以起始位置为参照,起始位置为(0,0),即真实位置为(0,0)),如果使用CGAffineTransformMakeTranslation(0, -100)就会返回控件在真实位置上向上移动100像素后的状态,但真实位置不会改变,当第二次执行head.transform = CGAffineTransformMakeTranslation (0, -100)就不会再有变化了,因为控件已经在这个状态了。
2、使按钮旋转
UIButton *head = (UIButton *)[self.view viewWithTag:10];
// M_PI_4即4分之pi角度——45°
// 角度是正数:顺时针, 角度是负数:逆时针
head.transform = CGAffineTransformRotate(head.transform, M_PI_4);
当旋转后它的起始x和y坐标也会跟着旋转。同样也不能使用head.transform = CGAffineTransformMakeRotation(-M_PI_4),原因同上
3、使按钮缩放
UIButton *head = (UIButton *)[self.view viewWithTag:10];
head.transform = CGAffineTransformScale(head.transform, 1.5, 1.5);
同样也不能使用head.transform = CGAffineTransformMakeScale(1.5, 1.5),原因同上