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),原因同上

posted @ 2015-08-31 18:54  Ray_hok  阅读(197)  评论(0编辑  收藏  举报