iOS动画效果iOS技能

天猫物色3D推拉动画

2017-10-11  本文已影响147人  尛破孩波波

简介

物色中有一个搭配页面,相信许多同学都记忆犹新。前几天Weex同学来问我要其权限,查看这个效果是如何实现的,因此我决定把这个动画的细节和实现告诉大家。这个动画是我刚到天猫花了1天时间完成的,因为其中有非常多的细节需要反复微调打磨。其实,我们在手淘、支付宝等客户端也会发现有类似的动画,但是最大的区别在于手势,猫客这个动画是支持跟手的,这就是我们最需要打磨的地方。为了让大家有一定的认识,先上一个GIF图:

img

从0开始搭建

首先,我们先分析一下这个视图中包含的元素:


img

创建主图区域

创建附属内容区及拖拽区域

点击上升/回落动画

产生沿x、y、z三轴方向上平移变化

p
q
r

产生透视变化

s

产生等比例缩放变换

然而CATransform3D为我们封装了一些方法来操作,并且是可以在上一个基础效果上做叠加操作

CATransform3D CATransform3DTranslate (CATransform3D t, CGFloat tx, CGFloat ty, CGFloat tz)
t:基础效果,将本次设值叠加于此
tx:X轴偏移位置,往下为正数。
ty:Y轴偏移位置,往右为正数。
tz:Z轴偏移位置,往外为正数。

```CATransform3D CATransform3DScale (CATransform3D t, CGFloat sx, CGFloat sy, CGFloat sz)```

t:基础效果,将本次设值叠加于此
sx:X轴缩放,代表一个缩放比例,一般都是 0 - 1 之间的数字。
sy:Y轴缩放。
sz:整体比例变换时,也就是m11(sx)== m22(sy)时,若m33(sz)>1,图形整体缩小,若0<1,图形整体放大,若m33(sz)<0,发生关于原点的对称等比变换。
CATransform3D CATransform3DRotate (CATransform3D t, CGFloat angle, CGFloat x, CGFloat y, CGFloat z)
t:基础效果,将本次设值叠加于此
angle:旋转的弧度,所以要把角度转换成弧度:角度 * M_PI / 180。
x:向X轴方向旋转。值范围-1 - 1之间
y:向Y轴方向旋转。值范围-1 - 1之间
z:向Z轴方向旋转。值范围-1 - 1之间
好了,我们用这三个方法之后,就能完成所有动画。

上升
回落

跟手拖拽动画

结束

好了,天猫物色搭配页面的推拉效果我们已经完成了,细节的打磨是一个与视觉和交互沟通指定的过程,各位同学需要耐心调整,最后在附件中附上本文中的Demo

上一篇 下一篇

猜你喜欢

热点阅读