比如如上所述的动画由下方往上递增
通常做法很简单 UIView.animate基础动画,高度从1到max,完成。
如果不追究细节,那么上述做法已经可以交差,可是细想一下总感觉动画弹出方式有点差劲,我们可以对此稍微优化一番,先分析下为何会出现这样的问题。
问题:
动画弹出时,内容从左下到中上 frame从0,0,0,0 到 0.5,1,1,1
预期:
动画弹出时,内容从中下到中上 frame从0.5,0,0,0 到 0.5,1,1,1
其实出现这样的问题是由于frame的不断改变造成的,以当前我们想实现的这种效果为例,主要思路就是去按动画的演变形式去改表frame。
layout大家布局的方式大多都是edg四边拉伸,所以初始化的view的大小是0,0.它的动画演变就不得已从左下方开始以倾斜的中线角度去显示,这不是我们想要的效果。
这里我还是推荐使用frame布局去展示这里的动画,仅仅是这种动画显示的view,在didlayoutframe里面去设置最终的frame(注意:didlayoutframe会多次调用,不要在这里addsubview)。这样就能得到你想要的效果。
另外,也可以尝试修改layout的布局方式,由原先的edg四边设置,考虑加上默认的宽度或高度,这里根据动画的需求去设置,可以尝试一下,感觉是可行的。