@property(nonatomic) CGAffineTransform transform; // view 的属性
@property CATransform3D transform; // layer 的属性
- view.transform:一般是View的旋转,拉伸移动等属性,是二维的,通常使用都是前缀CGAffineTransform的类。
- view.layer.transform:可以在3D模式下面的变化,通常使用的都是前缀为CATransform3D的类。
Tip: 其实两者的区别就是二维和三维的区别
一. CGAffineTransform
1. 简介
CGAffineTransform是一个用于处理形变的类,其可以改变控件的平移、缩放、旋转等,其坐标系统采用的是二维坐标系,即向右为x轴正方向,向下为y轴正方向
2. 方法介绍
- 以初始位置为基准,在x轴方向上平移x单位,在y轴方向上平移y单位
CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty)
- 以初始位置为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍
CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
- 实现以初始位置为基准,将坐标系统逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度)
CGAffineTransformMakeRotation(CGFloat angle)
注:
- 当angle为
正
值时,逆
时针旋转坐标系统,反之顺
时针旋转坐标系统- 逆时针旋转坐标系统的表现形式为对控件进行顺时针旋转
- 以一个已经存在的形变(t)为基准,在x轴方向上平移x单位,在y轴方向上平移y单位
CGAffineTransformTranslate(CGAffineTransform t,CGFloat tx, CGFloat ty)
- 实现以一个已经存在的形变为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍
CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)
- 以一个已经存在的形变为基准,将坐标系统逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度)
CGAffineTransformRotate(CGAffineTransform t,CGFloat angle)
注:transform属性默认值为CGAffineTransformIdentity,可以在形变之后设置该值以还原到最初状态
网友评论