你如何在iOS中实现“时钟擦拭”/径向擦拭效果?

有时候你会看到一个正在使用的“时钟擦拭”animation。 像这样的东西:

在这里输入图像说明

你将如何在iOS中实现这一效果?

(注:这个问题是一个“响声”。我想分享一个创build时钟擦animation的技巧,但是因为没有共享教程的格式,所以最接近的我可以问一个问题然后提供答案这是故意的,试图分享其他人可能会觉得有用的信息。)

回答:

您将创buildCAShapeLayer并将其作为掩码安装在视图的图层上。

然后,您将会在整个360度的形状图层中安装一条弧线,并且半径为图像中心到angular点的一半。 你会给它一个与半径相同的线宽。

最后,创build一个CABasicAnimation,将形状图层的strokeEnd属性从0增加到1.0。 这将导致形状开始空(图像完全掩盖),并将面具animation化为一个越来越大的“饼形片”,直到它是图像的全尺寸。

您可以在我编写的github上下载一个示例项目,其中显示了此animation的工作代码以及其他核心animation技术:

在github上的CAanimation演示