CoreGraphics框架中的CGAffineTransform類可用于設(shè)定UIView的transform屬性勋陪,控制視圖的縮放秉继、旋轉(zhuǎn)和平移操作:
另稱放射變換矩陣,可參照線性代數(shù)的矩陣實(shí)現(xiàn)方式0.0
這里附上的CGAffineTransform官方文檔:
https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGAffineTransform/index.html
transform 是一種狀態(tài)盗棵,并且只有一種狀態(tài)
(1)CGAffineTransformMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>):只能變化一次壮韭,因?yàn)檫@種方式的變化始終是以最原始的狀態(tài)值進(jìn)行變化的,所以只能變化一次
例如:
UIButton *head = (UIButton *) [self.view viewWithTag:10];
head.transform = CGAffineTransformMakeTranslation(0,-10);
(2)CGAffineTransformTranslate(CGAffineTransform t, <#CGFloat tx#>, <#CGFloat ty#>):能夠多次變化纹因,每次變化都是以上一次的狀態(tài)(CGAffineTransform t)進(jìn)行的變化喷屋,所以可以多次變化
head.transform = CGAffineTransformTranslate(head.transform, 0, -10);
(3) CGAffineTransformIdentity:清空所有的設(shè)置的transform(一般和動(dòng)畫配合使用,只能使用于transfofrm設(shè)置的畫面)
UIButton *head = (UIButton *) [self.view viewWithTag:10];
head.transform = CGAffineTransformIdentity;
(4)CGAffineTransformMakeScale( CGFloat? sx,? CGFloat? sy) (縮放:設(shè)置縮放比例)僅通過設(shè)置縮放比例就可實(shí)現(xiàn)視圖撲面而來和縮進(jìn)頻幕的效果瞭恰。
UIButton *head = [self.view viewWithTag:10];
head.transform = CGAffineTransformScale(head.transform,1.5,1.5);
(5) CGAffineTransformMakeRotation( CGFloat? angle) (旋轉(zhuǎn):設(shè)置旋轉(zhuǎn)角度)
UIButton *head =? [self.view viewWithTag:10];
head.transform = CGAffineTransformMakeRotation(M_PI_2);