CGAffineTransform几种常用函数

来源:互联网 发布:vue.js api中文文档 编辑:程序博客网 时间:2024/06/14 18:03
CGAffineTransform是一种基于3×3矩阵进行几何变换的数据结构。母体可以理解为当前作几何变换的图形。
坐标轴的偏移都是以iOS坐标系作为参照的,即(0,0)点在左上角。

1.CGAffineTransformCGAffineTransformIdentity;


自身大小,就像在矩阵的恒等变换中乘以一个对角为1的单位矩阵大小不发生变化。在这里它的作用是恢复母体的大小。例如,将一个view的transform属性经过各种变换之后形状位置都已经发生变化了。只要执行以下这个函数就可以让view回到原来的形状和位置。

2.CGAffineTransform CGAffineTransformMake ( CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty );

用于创建一个变换的母体,可以赋值给现有的view的transform属性。实际应用中很少用到。可以通过下列的方法直接创建需要变换的母体,然后返回给我们需要变换的view。
a: X轴方向的缩放,范围[0~1]
d: Y轴方向的,缩放[0~1]
b: 缩放参数
c: 缩放参数
tx: X轴方向的平移距离,
ty: Y轴方向的偏移距离。

3.CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle );

旋转变换,传入弧度值作为参数,以母体的中心作为原点旋转母体,通过赋值给需要变换的view的transform属性来实现旋转。iOS中正数代表顺时针,负数代表逆时针

4.CGAffineTransform CGAffineTransformMakeScale ( CGFloat sx, CGFloat sy );

缩放变换,以中心点为参考缩放母体
sx: 代表x轴方向缩放,参数范围[0~1]
sy: 代表y轴方向缩放,参数范围[0~1]

5.CGAffineTransform CGAffineTransformMakeTranslation ( CGFloat tx, CGFloat ty );

平移变换,以母体中心为参考平移
tx: X轴方向的平移距离
ty: Y轴方向的平移距离。

以上变换函数都是没有母体作为参数的,所以如果它们放在一起执行的话,只会看到最后一个函数的效果。那如果我们想让一个view既缩放又偏移又要旋转,怎么办呢?以下的函数表现的机会到了!

6.CGAffineTransform CGAffineTransformTranslate ( CGAffineTransform t, CGFloat tx, CGFloat ty );

平移变换,以传入的CGAffineTransformt参数作为母体进行平移变换,并返回变换后的母体。一般用于组合的几何变换。将上一个变换函数返回的母体作为这个函数的输入,得到组合变换母体的效果。这里有一点需要注意偏移的距离是以参入的母体参数最为参考的,而不是以一开开始的母体作参考。

7.CGAffineTransform CGAffineTransformScale ( CGAffineTransform t, CGFloat sx, CGFloat sy );

缩放变换,用法跟不带母体参数的类似,主要用于组合变换。

8.CGAffineTransform CGAffineTransformRotate ( CGAffineTransform t, CGFloat angle );
旋转变换,用法跟不带母体参数的类似,主要用于组合变换。

9.CGAffineTransform CGAffineTransformInvert ( CGAffineTransform t );
反转变换

10.bool CGAffineTransformIsIdentity ( CGAffineTransform t );
判断当前作为参数传入的(view 的 translate属性)母体跟原来的母体相比几何位置大小形状是否发生了变换。
0 0