如何使用 Core Animation 为脉动的蓝点设置动画?

Posted

技术标签:

【中文标题】如何使用 Core Animation 为脉动的蓝点设置动画?【英文标题】:How to animate a pulsating blue dot with Core Animation? 【发布时间】:2011-08-22 14:07:30 【问题描述】:

我是 Core Animation 新手,我想制作一个与地图应用程序对 GPS 位置所做的非常相似的脉动蓝点动画。

这不在地图中,也没有使用 Map Kit。它在我自己的一个视图中(实际上是UIImageView 子类),它本身在UIScrollView 中。

我才刚刚开始,我希望能提供建议、最佳实践,或许还有示例代码,以加快我的开发速度。

请注意一个特殊的转折:脉动蓝点的外观(大小)最好不取决于其滚动视图中宿主视图的缩放系数。我相信 Map Kit 的行为类似。

目的是将用户的注意力吸引到拥挤图像的特定微小部分。

感谢您的任何建议。

【问题讨论】:

【参考方案1】:

您可以使用两张预先生成的图像(一张为“低光”,一张为“高光”)并为两张图像之间的过渡设置动画。您需要使用类似于地图点的缓入曲线(随着它变亮而加速)并让它自动反转并重复。

或者,您可以使用带有蓝色阴影的视图,其模糊半径属性在零到几个像素之间进行动画处理。使用后一种方法,您自定义绘制的点可以在绘制时轻松考虑比例因子。

【讨论】:

是的,我对第二种方法更感兴趣,如果只是想看看 Quartz 可以做什么。我有一点学习要做,我会回来报告。

以上是关于如何使用 Core Animation 为脉动的蓝点设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Core Animation之CALayer心得

Core Animation简介

在 Core Animation 中为圆形箭头遮罩的长度设置动画

Core Animation 文档翻译 (第四篇)

Core Animation 文档翻译 (第五篇)

CALayer 的简介 和Core Animation动画效果 A