CoreGraphics框架中的CGAffineTransform類可用于設定UIView的transform屬性,控制視圖的縮放、旋轉和平移操作
- CGAffineTransformIdentity
//下面所有都是針對視圖的原定最初位置的中心點為起始參照進行相應操作的,在操作結束之后可對設置量進行還原:
button.transform = CGAffineTransformIdentity;
- CGAffineTransformMakeTranslation(CGFloat tx,
CGFloat ty)
//平移:設置平移量
//注意:基于對象的初始的位置做的形變!不是累加的形變
button.transform = CGAffineTransformMakeTranslation(0, -100);
- CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
//縮放(x、y都擴兩倍)
//注意:基于對象的初始的位置做的形變!不是累加的形變
view.transform = CGAffineTransformMakeScale(2,2)
- CGAffineTransformMakeRotation(CGFloat angle)
//旋轉
//注意:基于對象的初始的位置做的形變!不是累加的形變
//angle是弧度制,也就是π,并不是角度制,且類似縮放,弧度是正數是順時針旋轉,負數是逆時針旋轉
view.transform = CGAffineTransformMakeScale(M_PI)
下面介紹幾個可以累加的形變
CGAffineTransformTranslate(CGAffineTransform t,
CGFloat tx, CGFloat ty)CGAffineTransformScale(CGAffineTransform t,
CGFloat sx, CGFloat sy)CGAffineTransformRotate(CGAffineTransform t,
CGFloat angle)
跟之前的相比只是多了一個CGAffineTransform的參數,我們可以設置這個參數來實現類似組合動畫的效果
view.transform = CGAffineTransformIdentity;
[UIView animateWithDuration:1.0f animations:^{
CGAffineTransform transform1 = CGAffineTransformMakeRotation(M_PI);
CGAffineTransform transform2 = CGAffineTransformScale(transform1, 0.5, 0.5);
view.transform = CGAffineTransformTranslate(transform2, 100, 100);
}];
這樣我們就實現了旋轉、縮放、位移動畫的結合