iOS第三方库Eureka实现定制动画详解(十五):拉伸+Q弹动画

15.第二步+第三步:填充stub图片到用户logo+Q弹动画

这一步就简单了很多,只是一个将stub图片放大的操作,但是别忘了:你真正要显示的是UserLogoRow里面的logoView而不是stub图片,所以这还涉及到一个“显示+删除”的过程。

我们首先要确定的是:要将stub图片放大多少倍???

这个看似很简单的问题,其实有点小难度,因为你要考虑到logoView图片轮廓线的宽度:

iOS第三方库Eureka实现定制动画详解(十五):拉伸+Q弹动画_第1张图片

对于这个公式的推导,本猫猪很荣幸的回顾了一下小学几何的知识 ;)

即我们实际放大的倍数是:

(大圆半径 / 2 - 轮廓线宽度) / (小圆半径 / 2)

所以本猫决定马上在注释1后面添加这个“来之不易”公式的计算代码:

let scale = (logoRow.cell.logoView!.bounds.width/2.0 - 5) / (stubFrame.width / 2.0)

现在可以来从容实现stub图片扩展动画了,别忘了我们还需要扩展结束的一个Q弹效果,这可以很轻易的利用弹性动画来完成。接着之前注释2的末尾,添加如下代码:

{finish in
    UIView.animate(withDuration: 

你可能感兴趣的:(iOS开发之旅)