创建一个CGAffineTransform
在Core Animation 中常用的有3种变换形式。下面我们来一一介绍。
这个是控制图形 顺时间旋转的一个tansform,里面的angle是一个弧度制的表示。
CGAffineTransformMakeRotation(CGFloat angle)
这个是控制图形大小缩放,一个是X轴上缩放,一个是Y
CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
这个时控制横行或者纵向平移。
CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty)
具体用法如下:
@interface ViewController ()
@property (nonatomic, weak) IBOutlet UIView *layerView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//顺时针 45度旋转
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_4);
self.layerView.layer.affineTransform = transform;
}
@end
混合变换
当你的一个图片既需要旋转又需要平移,还需要缩放的时候。Core Graphics同样也提供了一个方便的常量:CGAffineTransformIdentity
具体用法如下:
- (void)viewDidLoad
{
[super viewDidLoad];
//创建一个transform 并把常量 identity 赋值过去
CGAffineTransform transform = CGAffineTransformIdentity;
//然后就是 不断的添加 变换条件 赋值 给 transform
transform = CGAffineTransformScale(transform, 0.5, 0.5);
transform = CGAffineTransformRotate(transform, M_PI / 180.0 * 30.0);
transform = CGAffineTransformTranslate(transform, 200, 0);
//把自己定义的transform 给 目标 transform
self.layerView.layer.affineTransform = transform;
}