一、理論基礎
二、效果演示
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初步入門
文章來源於網路,如有侵權,請聯絡小編刪除。