基于CAEmitterLayer实现一些动画效果

起因

 昨天在群里看到一个安卓的好友分享了一个比较有意思的动画,有点类似直播平台上的“冒泡”效果的粒子动画,感觉挺不错的,赶巧前段时间在看一个开源App的时候也看到一个类似的,因此正好拿出来练练手。

基础

 iOS相对于安卓平台,动画一直是其强项,因此要实现类似的效果,代码也是相对容易。因此只要学会一个CAEmitterLayer就可以了,是不是很简单?

概况

 CAEmitterLayer是官方基于Core Animation实现的粒子发生器系统。其中的每个粒子又都是一个CAEmitterCell的实例。在该系统中,粒子绘制在背景色与border之上。其本身继承自CALayer,用法自然也和CALayer基本一次。

基于CAEmitterLayer实现一些动画效果_第1张图片
图1(CAEmitterLayer简介)

 CAEmitterCell在粒子系统中作为粒子的实体,本身继承自NSObject,通过它和CAEmitterLayer的组合,就很容易实现一些炫酷的功能。

常见属性简介

  本来这部分想自己写的,但是突然在网上看到了一篇相似的博客,发现作者实现写得太详细了,我实在没有必要再闭门造车,大家如果有兴趣就自己去看看:传送门

动画实现

 基础不用讲了,那就直接上代码吧。

 写到这里都不知道该写些什么,因为这个Demo本身也没有什么难度,对于iOS开发者来说仅仅是一个控件的学习,所以就不废话了,直接贴上代码:

基于CAEmitterLayer实现一些动画效果_第2张图片
图二(代码1::生成CAEmitterLayer实例)
基于CAEmitterLayer实现一些动画效果_第3张图片
图3(代码2:生成CAEmitterCell实例)
基于CAEmitterLayer实现一些动画效果_第4张图片
图4(代码3:调用方法)
基于CAEmitterLayer实现一些动画效果_第5张图片
图5(效果1)

 整个CAEmitterLayer使用大概这样的流程,入门还是很简单,如果想做出更好的效果,大家就自己去动手尝试吧。

完整的Demo戳我

扩展阅读

Apple Developer

超级详细的属性介绍(传送门)

可动态查看属性影响的可视化工具

你可能感兴趣的:(基于CAEmitterLayer实现一些动画效果)