你如何在iOS中实现"时钟擦除" /径向擦除效果?

时间:2014-03-14 15:24:30

标签: ios animation core-animation

有时候你会看到时钟擦拭"正在使用的动画。像这样:

enter image description here

你会如何在iOS中实现这种效果?

(注意:这个问题是" ringer。"我想分享一种创建时钟擦除动画的技术,但是SO没有共享教程的格式,所以最接近的我可以来提出问题,然后提供答案。这是故意的,并试图分享其他人可能觉得有用的信息。)

1 个答案:

答案 0 :(得分:12)

答案:

您可以创建CAShapeLayer并将其作为蒙版安装在视图的图层上。

然后,您将弧线安装到跨越整个360度的形状图层中,并且半径为图像中心到角落距离的一半。你给它一个与半径相同的线宽。

最后,您要创建一个CABasicAnimation,它将形状图层的strokeEnd属性设置为0到1.0。这将导致形状开始为空(图像完全蒙版)并将蒙版动画为"饼图"越来越大,直到它是图像的全尺寸。

您可以在我编写的github上下载示例项目,该项目显示此动画的工作代码,以及其他Core Animation技术:

CA Animation demo on github