常用的动画库调研
由于动画库的种类很多,效果也因需求不同而表现得不同,很难根据某个量化的标准去收录,比如 star 的数量,最近更新的时间点,所以本次调研内容,主要收录包含各种动画库跳转链接的文章,和不同文章收录交叉重叠较多的库的摘录。
动画库索引
文章:
GitHub 上 star 数量较高的动画库收录:https://github.com/ameizi/awesome-ios-animation
Swift 动画库收录:https://juejin.im/post/5c7d1ff3f265da2dcc8010e7
分类比较详细的动画库收录:https://cloud.tencent.com/developer/article/1346906
网站:
CocoaChina:http://code.cocoachina.com/list/33/1
Code4App:http://www.code4app.com/code.php
常用的动画库
- face 出品的动画引擎,公司内部项目曾用到过的:pop
使用POP可以建立4類動效:: spring, decay, basic and custom.
Spring (彈性)動效可以賦予物體愉悅的彈性效果
1 | POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerBounds]; |
Decay (衰減) 動效可以用來逐漸減慢物體的速度至停止
1 | POPDecayAnimation *anim = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPositionX]; |
Basic(基本)動效可以在給定時間的運動中插入數值調整運動節奏
1 | POPBasicAnimation *anim = [POPBasicAnimation animationWithPropertyNamed:kPOPViewAlpha]; |
Custom(自定義)動效可以讓設計值建立自定義動效,只需簡單處理CADisplayLink,並聯系時間-運動關係
- 基于 Facebook Pop 引擎的 iOS 动画库,演示用pop实现的各种效果:popping
- 加载等待动画:MBProgressHUD
- 加载等待动画,和MBProgressHUD效果差不多,不过不需要使用协议,同时也不需要声明实例:SVProgressHUD
- 可通过 AE 插件直接将动画导出为 json 文件在客户端使用:lottie-ios
- IFTTT 开源的一个简单易用的关键帧基础动画框架, 可通过手势、scroll views, KVO, ReactiveCocoa 等方式来控制动画。可以用来做动态引导页:JazzHands
- 转场动画:AnimatedTransitionGallery
- 用 Swift 编写的高性能 Gif 播放引擎:SwiftyGif