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

1、理論基礎

請參考 CGAffineTransform簡單分析html

2、效果演示

1.gif

3、實現代碼

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

4、補充

  • 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經過矩陣變換以後的區域

5、Demo下載地址

Demo下載地址:這是一個個人iOS交流羣:624212887,羣文件自行下載,無論你是小白仍是大牛熱烈歡迎進羣 ,分享面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。——點擊:加入面試

若是以爲對你還有些用,就關注小編+喜歡這一篇文章。你的支持是我繼續的動力。網絡

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

文章來源於網絡,若有侵權,請聯繫小編刪除。spa

相關文章
相關標籤/搜索