transframe属性详解

来源:互联网 发布:太阳的后裔迷彩服淘宝 编辑:程序博客网 时间:2024/06/15 02:42

transframe属性详解

1. transform属性

在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度

常用的创建transform结构体方法分两大类

(1) 创建“基于控件初始位置”的形变

CGAffineTransformMakeTranslation(平移)

CGAffineTransformMakeScale(缩放)

CGAffineTransformMakeRotation(旋转)

 

(2) 创建“基于transform参数”的形变

CGAffineTransformTranslate

CGAffineTransformScale

CGAffineTransformRotate

 

补充:

在OC中,所有跟角度相关的数值,都是弧度值,180° = M_PI

正数表示顺时针旋转

负数表示逆时针旋转

 

    /**

     *  2D缩放

     */

1     //起始位置:仅一次2     self.imageView2D.transform = CGAffineTransformMakeScale(32, 45);3     //当前位置:多次4     self.imageView2D.transform = CGAffineTransformScale(self.imageView3D.transform, 32, 45);

  /**

   *  2D旋转

   */

1     //起始位置:仅一次2     self.imageView2D.transform = CGAffineTransformMakeRotation(M_PI_4);3     //当前位置:多次;4     self.imageView2D.transform = CGAffineTransformRotate(self.imageView3D.transform, M_PI_4);5     6     

 

  /**

   *  2D平移

   */

1     //起始位置:仅一次2     self.imageView2D.transform = CGAffineTransformMakeTranslation(100, 100);3     //当前位置:多次4     self.imageView2D.transform = CGAffineTransformTranslate(self.imageView3D.transform, 100, 100);5     6     

 

/**

 *  2D还原

 */

 1 //清空所有transform 2 self.imageView2D.transform = CGAffineTransformIdentity; 


CALayer有个非常重要的属性,锚点,对于CALayer的隐式动画,其anchorPoint起着至关重要的作用

/* Defines the anchor point of the layer's bounds rect, as a point in * normalized layer coordinates - '(0, 0)' is the bottom left corner of * the bounds rect, '(1, 1)' is the top right corner. Defaults to * '(0.5, 0.5)', i.e. the center of the bounds rect. Animatable. */@property CGPoint anchorPoint;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

根据官方解释,anchorPoint左下角为(0,0),右上角为(1,1),默认值为(0.5, 0.5),但其实现实不是这样的,现实中左上角为(0,0),右下角为(1,1),如图所示:





0 0
原创粉丝点击