CATransform3D 使用

Posted pjfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CATransform3D 使用相关的知识,希望对你有一定的参考价值。

struct CATransform3D

{

CGFloat m11(x轴缩放), m12(y轴切变), m13, m14(x轴拉伸);

CGFloat m21(x轴切变), m22(y轴缩编), m23, m24(向y轴拉伸);

CGFloat m31, m32, m33, m34;

CGFloat m41(x轴平移), m42(y轴平移), m43(z轴平移), m44(放大);

};

举例:

对照图

UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

img.image = [UIImage imageNamed:@"11"];

[self.view addSubview:img];

修改图

UIImageView *caimg = [[UIImageView alloc]initWithFrame:CGRectMake(100, 200, 100, 100)];

caimg.image = [UIImage imageNamed:@"11"];

[self.view addSubview:caimg];

1、平行移动

CATransform3DMakeTranslation(tx,ty,tz)

tx:x轴方向移动,右移为正数

ty:y轴方向移动,下移为正数

tz:z轴方向移动,外移为正数

CATransform3D translation = CATransform3DMakeTranslation(0.0, 80.0, 5.0);

caimg.layer.transform = translation;

2、缩放

CATransform3DMakeScale(CGFloat sx, CGFloat sy, CGFloat sz)

sx:x轴方向缩放,大于1放大。小于1缩小

sy:y轴方向缩放,大于1放大。小于1缩小

sz:z轴方向缩放,大于1放大。小于1缩小

CATransform3D scale = CATransform3DMakeScale(2, 2, 5);

  caimg.layer.transform = scale;

3、旋转

CATransform3DMakeRotation (CGFloat angle, CGFloat x,CGFloat y, CGFloat z)

angle:旋转角度

x:围绕x轴旋转,取值范围-1~1

y:围绕y轴旋转,取值范围-1~1

z:围绕z轴旋转,取值范围-1~1

CATransform3D rotation = CATransform3DMakeRotation(M_PI/3, 1, 1, 1); caimg.layer.transform = rotation;

4、复合行

CATransform3DIsIdentity (CATransform3D t)

t:CATransform3D类型,可以附加

CATransform3DTranslate (CATransform3D t, CGFloat tx,

CGFloat ty, CGFloat tz)

CATransform3DScale (CATransform3D t, CGFloat sx,

CGFloat sy, CGFloat sz)

 

以上是关于CATransform3D 使用的主要内容,如果未能解决你的问题,请参考以下文章

层变换矩阵(CATransform3D 等)但带有 IBDesignable?

CATransform3D 使用

iOS形变之CATransform3D

旋转视图边缘的 CATransform3D 深度

CATransform3D 奇怪的 UIScrollView contentOffset

CATransform3D