iOS開發UI篇--仿射變(CGAffineTransform)使用小結

邏輯教育-楚陽發表於2018-11-20

一、理論基礎

請參考 CGAffineTransform簡單分析

二、效果演示

iOS開發UI篇--仿射變(CGAffineTransform)使用小結
1.gif

三、實現程式碼

3.1:位移變換

-(void)positionAnimation{
    _demoView.transform = CGAffineTransformIdentity;
    [UIView animateWithDuration:1.0f animations:^{
        _demoView.transform = CGAffineTransformMakeTranslation(100, 100);
    }];
}
複製程式碼

3.2:縮放變換

-(void)scaleAnimation{
    _demoView.transform = CGAffineTransformIdentity;
    [UIView animateWithDuration:1.0f animations:^{
        _demoView.transform = CGAffineTransformMakeScale(2, 2);
    }];
}
複製程式碼

3.3:旋轉變換

-(void)rotateAnimation{
    _demoView.transform = CGAffineTransformIdentity;
    [UIView animateWithDuration:1.0f animations:^{
        _demoView.transform = CGAffineTransformMakeRotation(M_PI);
    }];
}
複製程式碼

3.4:組合變換

-(void)combinationAnimation{
    //仿射變換的組合使用
    _demoView.transform = CGAffineTransformIdentity;
    [UIView animateWithDuration:1.0f animations:^{
        CGAffineTransform transform1 = CGAffineTransformMakeRotation(M_PI);
        CGAffineTransform transform2 = CGAffineTransformScale(transform1, 0.5, 0.5);
        _demoView.transform = CGAffineTransformTranslate(transform2, 100, 100);
    }];
}
複製程式碼

3.5:矩陣的反轉

-(void)invertAnimation{
    _demoView.transform = CGAffineTransformIdentity;
    [UIView animateWithDuration:1.0f animations:^{
        //矩陣反轉
        _demoView.transform = CGAffineTransformInvert(CGAffineTransformMakeScale(2, 2));
    }];
}
複製程式碼

四、補充

  • CGAffineTransformIdentity : 單位矩陣變換,一般用於仿射變換的初始化或者還原。

  • CGAffineTransformEqualToTransform(CGAffineTransform t1,

  • CGAffineTransform t2) : 判斷兩個變換矩陣是否相等

  • CGAffineTransformConcat(CGAffineTransform t1,

  • CGAffineTransform t2) : 得到兩個矩陣相加後得到的最終矩陣

  • CGPoint CGPointApplyAffineTransform(CGPoint point,

  • CGAffineTransform t) : 某點通過矩陣變換之後的點

  • CGSize CGSizeApplyAffineTransform(CGSize size, CGAffineTransform t) : 某個size通過矩陣變換之後的size

  • CGRect CGRectApplyAffineTransform(CGRect rect, CGAffineTransform t) : 某個Rect通過矩陣變換之後的區域

五、Demo下載地址

Demo下載地址:這是一個我的iOS交流群:624212887,群檔案自行下載,不管你是小白還是大牛熱烈歡迎進群 ,分享面試經驗,討論技術, 大家一起交流學習成長!希望幫助開發者少走彎路。

如果覺得對你還有些用,就關注小編+喜歡這一篇文章。你的支援是我繼續的動力。

下篇文章預告:UICollectionView初步入門

文章來源於網路,如有侵權,請聯絡小編刪除。


相關文章