iOS基礎CGAffineTransform的簡單使用


CoreGraphics框架中的CGAffineTransform類可用於設定UIView的transform屬性,控制視圖的縮放、旋轉和平移操作:

另稱放射變換矩陣,可參照線性代數的矩陣實現方式0.0

這里附上的CGAffineTransform官方文檔:

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGAffineTransform/index.html

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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM