CoreGraphics框架中的CGAffineTransform類可用於設定UIView的transform屬性,控制視圖的縮放、旋轉和平移操作:
另稱放射變換矩陣,可參照線性代數的矩陣實現方式0.0
這里附上的CGAffineTransform官方文檔:
transform 是一種狀態,並且只有一種狀態
(1)CGAffineTransformMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>):只能變化一次,因為這種方式的變化始終是以最原始的狀態值進行變化的,所以只能變化一次
例如:
UIButton *head = (UIButton *) [self.view viewWithTag:10]; head.transform = CGAffineTransformMakeTranslation(0,-10);
(2)CGAffineTransformTranslate(CGAffineTransform t, <#CGFloat tx#>, <#CGFloat ty#>):能夠多次變化,每次變化都是以上一次的狀態(CGAffineTransform t)進行的變化,所以可以多次變化
head.transform = CGAffineTransformTranslate(head.transform, 0, -10);
(3) CGAffineTransformIdentity:清空所有的設置的transform(一般和動畫配合使用,只能使用於transfofrm設置的畫面)
UIButton *head = (UIButton *) [self.view viewWithTag:10]; head.transform = CGAffineTransformIdentity;
(4)CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)(縮放:設置縮放比例)僅通過設置縮放比例就可實現視圖撲面而來和縮進頻幕的效果。
UIButton *head = [self.view viewWithTag:10]; head.transform = CGAffineTransformScale(head.transform,1.5,1.5);
(5)CGAffineTransformMakeRotation(CGFloat angle)(旋轉:設置旋轉角度)
UIButton *head = [self.view viewWithTag:10]; head.transform = CGAffineTransformMakeRotation(M_PI_2);
UIButton *head = (UIButton *) [self.view viewWithTag:10]; head.transform = CGAffineTransformRotate(head.transform, -M_PI_4);