Core Animation 学习笔记 简单变换

创建一个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;
}

你可能感兴趣的:(Core Animation 学习笔记 简单变换)