標籤:
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),原因同上
iOS開發之transform