ios

iOS动画基础之CGAffineTransform和CATran

2017-01-10  本文已影响43人  张不二01

一,CGAffineTransform

1,CGAffineTransform是UIView层面的属性,是二维变换,任何view或者继承UIView的子类都具有该属性,可以通过这个变换实现对控件二维平面上的平移,旋转,缩放等
2,CGAffineTransform变换有两种方式:
//旋转
_imageView.transform = CGAffineTransformMakeRotation(M_PI);//注意这里应该是弧度制,默认顺时针
//平移
_imageView.transform = CGAffineTransformMakeTranslation(20, 400);
//缩放
_imageView.transform = CGAffineTransformMakeScale(1.5, 1.5);
//旋转
_imageView.transform = CGAffineTransformRotate(_imageView.transform, M_PI);//注意这里应该是弧度制,默认顺时针

//平移
_imageView.transform = CGAffineTransformTranslate(_imageView.transform, 0, 30);

//缩放
_imageView.transform = CGAffineTransformScale(_imageView.transform, 0, 10);

CGAffineTransform transformScale = CGAffineTransformScale(_imageView.transform, 1.1, 1.1);
CGAffineTransform transformRotate = CGAffineTransformRotate(transformScale, M_PI_4);
_imageView.transform = transformRotate;

二,CATransform3D

1,CATransform3D是layer层面的属性,是三维属性,任何layer可以通过这个变换实现对控件在三维空间上的平移,旋转,缩放等
2,同二维变换一样,CATransform3D变换有两种方式:
//首先取得layer层
CALayer *layer = _imageView.layer;

//可以进行旋转
layer.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0);
//或者平移
layer.transform = CATransform3DMakeTranslation(0, 200, 1000);

//又或者缩放
layer.transform = CATransform3DMakeScale(1.1, 1.1, 1.5);
//旋转
layer.transform = CATransform3DRotate(layer.transform, M_PI, 1, 0, 0);
//抑或平移
layer.transform = CATransform3DTranslate(layer.transform, 0, 200, 0);
//又或缩放
layer.transform = CATransform3DScale(layer.transform, 1.2, 1.2, 1.2);
//同时进行旋转,缩放,平移操作
//注意:这里旋转180之后之后y轴正方向是会改变的
CATransform3D transformRotate = CATransform3DRotate(layer.transform, M_PI, 1, 0, 0);
CATransform3D transformTranslate = CATransform3DTranslate(transformRotate, 0, 200, 0);
layer.transform = CATransform3DScale(transformTranslate, 1.2, 1.2, 1.2);
上一篇 下一篇

猜你喜欢

热点阅读