CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的平移、缩放和旋转操作;另称仿射变换矩阵。
(一)、 每次都是以最初位置的中心点为参考
CGAffineTransform CGAffineTransformMakeTranslation ( CGFloat tx, CGFloat ty );
CGAffineTransform CGAffineTransformMakeScale ( CGFloat sx, CGFloat sy );
CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle );【注意angle 是弧度制】
(二)、每次都是以传入的transform为参照(既有叠加效果)
CGAffineTransform CGAffineTransformTranslate ( CGAffineTransform t, CGFloat tx, CGFloat ty );
CGAffineTransform CGAffineTransformScale ( CGAffineTransform t, CGFloat sx, CGFloat sy );
CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );【注意angle 是弧度制】
(三)、 最初位置的中心点view.transform = CGAffineTransformIdentity;
===========================================================================================
示例:
[UIView.animateWithDuration:0.5, animations:^{
self.btnIcon.transform = CGAffineTransformRotate(self.btnIcon.transform,-M_PI_4);
self.btnIcon.transform = CGAffineTransformTranslate(self.btnIcon.transform,0,50);
self.btnIcon.transform = CGAffineTransformScale(self.btnIcon.transform,1.5,1.5);
}];
这里附上的CGAffineTransform官方文档: