5分钟快速上手EatFit:iOS动画数据组件的安装配置与第一个页面实战
【免费下载链接】EatFitEat fit is a component for attractive data representation inspired by Google Fit项目地址: https://gitcode.com/gh_mirrors/ea/EatFit
想让你的 App 拥有 Google Fit 那样丝滑的动画数据展示效果,却不想从零手写动画?EatFit 正是为此而生的 iOS 动画数据组件。它基于 UIPageViewController 打造,用类似 UITableViewDataSource 的模式驱动,几分钟就能生成带水滴落下、环形图表填充、数字滚动等效果的翻页数据页。本文手把手带你完成安装配置,并跑通第一个页面。
EatFit 是什么?为什么它值得一试?🚀
EatFit 是 Yalantis 开源的一款数据可视化组件,设计灵感来自 Google Fit 的健康数据卡片。它把"健康追踪"常见的圆形进度环、百分比数字、图标 Logo 等元素,包装成一套可复用的翻页界面:
- 左右滑动切换数据卡片,体验与 App Store 卡片一致
- 水滴下落、图表增长、数字跳动等动画全部内置
- 数据源协议与 UITableViewDataSource 风格一致,上手成本极低
- 页面采用复用机制,无论多少页,内存中最多只保留 3 个页面
如果你正在做健康、运动、记账、目标管理等 App,用它来展示"今日饮水进度""卡路里消耗""目标完成率",会是非常出彩的选择。✨
安装前准备:环境要求一览 ✅
在开始安装配置之前,先确认你的开发环境满足以下条件:
| 项目 | 要求 |
|---|---|
| 语言 | Swift 5 |
| 系统 | iOS 9.0 及以上 |
| 工具 | Xcode 11 及以上 |
| 内存管理 | 支持 ARC(默认开启即可) |
| 屏幕方向 | 仅支持竖屏 Portrait |
另外需要提醒的是,EatFit 继承自 UIView,属于 UIKit 组件,只能在主线程访问。加载数据时可以使用后台线程,但更新界面务必回到主线程。
最快的安装方法:Carthage 一行搞定 🛠️
如果你的项目已经使用了 Carthage 依赖管理,安装 EatFit 是最快的。在 Cartfile 中加入:
github "Yalantis/EatFit" ~> 3.0然后执行carthage update,等待编译完成后,将生成的 framework 拖入项目并添加import EatFit即可使用。整个过程通常不超过两分钟。
手动安装方法:拖拽即用 📂
不想引入 Carthage?手动安装同样简单:
- 将仓库中的
EatFit文件夹整体拖入你的 Xcode 工程 - 确保勾选 "Copy items if needed" 和你的 target
- 在需要使用的地方
import EatFit(Swift 工程中若已加入源文件,也可能无需 import,直接引用类即可)
手动安装时,核心组件类都位于EatFit/ViewController/PagingViewController/目录下,动画相关视图则在EatFit/Views/中,你可以按需浏览。
第一个页面实战:用数据源配置你的页面 📱
EatFit 的核心思路是:你只管提供数据,界面和动画交给组件。它通过EatFitViewControllerDataSource协议来获取所有展示内容。
认识数据源协议
协议定义在 EatFitViewController.swift 中,核心方法如下:
| 方法 | 作用 |
|---|---|
| numberOfPagesForPagingViewController | 返回页面总数 |
| chartColorForPage | 返回每个页面的主题色(决定图表和 Logo 颜色) |
| percentageForPage | 返回百分比数值 |
| titleForPage | 返回页面顶部标题 |
| descriptionForPage | 返回页面底部描述 |
| logoForPage | 返回页面的图标(建议用带透明通道的 PNG) |
| chartThicknessForPagingViewController | 返回环形图表的粗细 |
接入你的第一个页面
假设你想展示三条健康数据(饮水、饮食、能量),只需让控制器遵守协议并实现上述方法:
class ViewController: UIViewController, EatFitViewControllerDataSource { let eatFitController = EatFitViewController() override func viewDidLoad() { super.viewDidLoad() eatFitController.dataSource = self eatFitController.view.frame = view.frame addChild(eatFitController) view.addSubview(eatFitController.view) } func numberOfPagesForPagingViewController(_ controller: EatFitViewController) -> Int { return 3 } func chartColorForPage(_ index: Int, forPagingViewController: EatFitViewController) -> UIColor { return [UIColor.blue, UIColor.green, UIColor.orange][index] } func percentageForPage(_ index: Int, forPagingViewController: EatFitViewController) -> Int { return [74, 86, 58][index] } func chartThicknessForPagingViewController(_ controller: EatFitViewController) -> CGFloat { return 15 } }跑起来后,你就能看到三个可左右滑动的数据卡片,每张卡片都会自动播放水滴下落和环形图表填充动画。🎉
更省事的做法是参考 Demo:Demo 工程在Demo/DemoProject/下,通过读取Resources/Objects.plist中的配置数据(标题、百分比、颜色、图标),批量生成页面,非常适合直接改造复用。
进阶玩法:动画与性能亮点 🔥
如果你对动画实现感兴趣,EatFit 的源码非常值得阅读:
EatFit/Views/RoundChartView.swift:使用 CAShapeLayer 绘制环形图表,通过 strokeEnd 动画实现填充效果EatFit/Views/DropView.swift:实现水滴自由落体、落地压扁、Logo 弹出的完整动画链EatFit/Various/Tween/Tween.swift:轻量补间动画工具,用于百分比数字的平滑滚动
性能方面,组件像 UITableView 复用 cell 一样复用页面,无论数据量多大,内存中同时只存在不超过 3 个页面,无需担心页面过多导致卡顿。
常见问题与小贴士 💡
Q:页面切换后动画不重新播放?动画只在首次进入时播放,切换页面触发的是已设计好的转场回调,这是组件刻意保持的行为。
Q:Logo 颜色不对?Logo 图片本身的颜色不重要,组件会用页面主题色为其着色,记得使用带透明通道的 PNG 图片。
Q:想修改环形图表粗细?通过chartThicknessForPagingViewController返回想要的点数即可,对所有页面统一生效。
Q:从哪里获取完整源码?源码托管在 GitCode,clone 仓库地址为:https://gitcode.com/gh_mirrors/ea/EatFit
写在最后 📝
到这里,你已经完成了 EatFit 的安装配置,并成功跑通了第一个动画数据页面。从 Google Fit 风格的环形图表,到丝滑的翻页动画,这套 iOS 动画数据组件几乎开箱即用。快去把枯燥的数字换成会跳舞的图表吧,让你的 App 界面生动起来!
【免费下载链接】EatFitEat fit is a component for attractive data representation inspired by Google Fit项目地址: https://gitcode.com/gh_mirrors/ea/EatFit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考