transframe属性详解

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),如图所示:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值