刨根问底-- CATransform3D(一)

前几天看了个demo。用到了CATransform3D,感觉效果很好。这几仔细研究了下,并写了个测试效果的demo  github

struct CATransform3D{

CGFloat m11(x缩放), m12(y切变), m13(旋转), m14();

CGFloat m21(x切变), m22(y缩放), m23(), m24();

CGFloat m31(旋转), m32(), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。正直/负值都有意义);

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

};

这个定义估计百度CATransform3D你能找到一大堆,但口说无凭。看我demo,每个值变化对应的动画都有体现。自己看看demo立刻就明白,加以组合,就能撸出不一样的效果。


举个栗子

CATransform3D transform = CATransform3DIdentity;

transform.m34 = 0.0005; // 透视效果(我觉得叫立体效果不是更合适吗,,透视。。。。)

transform = CATransform3DRotate(transform,(M_PI/180*40), 1,0 , 0);

[self.gridView.layer setTransform:transform];

第二行一定要写在第三行的前面!效果如1.0图片

1.0

你可能感兴趣的:(刨根问底-- CATransform3D(一))