前几天看了个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
网友评论