界面Swift
SwiftUI-Animation-Masterclass
面向 iOS 和 macOS 的 SwiftUI 物理驱动动效、粒子、变化效果和过渡。
7星标数最新版本: v2.0.0更新时间: 2026年10月15日
支持平台:iOS 17macOS 14
许可证: MIT
一个面向 iOS 17+ 和 macOS 14+ 的 SwiftUI 动效 Swift package:基于物理的 spring、decay 和弹跳效果,保留手指速度的拖动手势,粒子效果,变化效果和过渡效果。所有内容都是一个 view modifier、一个 Animation、一个 Transition 或一个纯值类型,该 package 没有依赖。
功能特性
- 以封闭形式求解的 DampedSpring,带有 gentle、snappy、bouncy 和 smooth 预设、稳定时间以及转换为 SwiftUI 动画的能力
- Decay 预测一次快速滑动的结束位置;GravityBounce 和 .gravityBounce() 让一个值下落并弹跳
- .elasticDrag() 和 .snapDrag() 把释放速度传递给 spring,并在边界之外用 rubber-band 阻力产生拉伸
- 单个 Canvas 中的粒子:8 种预设、5 种力和 7 种形状,基于 seed 的模拟,最多 10,000 个粒子
- 变化效果(shake、jump、spin、pulse、ping、shine)以及 iris、wipe、flip 和 pop 过渡
- 每种效果都会自行遵循 Reduce Motion 设置
- 以 Swift 6 语言模式构建;包含四篇文章的 DocC 文档目录,以及面向 iOS 和 macOS 的 MotionGallery 示例应用
快速开始
swift
1import SwiftUI2import SwiftUIAnimationMasterclass3 4struct LikeButton: View {5 @State private var likes = 06 7 var body: some View {8 Button("Like", systemImage: "heart.fill") { likes += 1 }9 .buttonStyle(.borderedProminent)10 .changeEffect(.jump(), value: likes)11 .particleBurst(.hearts, trigger: likes)12 }13}安装
Swift Package Manager
swift
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Animation-Masterclass.git", from: "2.0.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftUIAnimationMasterclass", package: "SwiftUI-Animation-Masterclass")7 ])8]截图












时间线
仓库开放
标记 1.0.0;其 manifest 指向了仓库中不存在的源码文件夹,因此无法构建
精简:移除了旧的动画模块,只留下一个 demo view 和一个 scroll modifier
重建为 2.0.0:加入物理、手势、粒子、变化效果和过渡;MobileMotion 和 SwiftParticles 合并进来并归档