5分钟快速上手EatFit:iOS动画数据组件的安装配置与第一个页面实战
2026/8/20 18:08:59 网站建设 项目流程

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?手动安装同样简单:

  1. 将仓库中的EatFit文件夹整体拖入你的 Xcode 工程
  2. 确保勾选 "Copy items if needed" 和你的 target
  3. 在需要使用的地方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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询