Animated Tab Bar
AnimatedTabBar 是一个使用纯 SwiftUI 编写的具有多种预设动画的标签栏
使用方法
- 添加一个
Int
来存储当前选择 - 通过两种初始化器之一将按钮传递给AnimatedTabBar。对于第一种,您可以传递任何视图类型
import AnimatedTabBar
AnimatedTabBar(selectedIndex: $selectedIndex) {
TabButton1()
TabButton2()
TabButton3()
}
对于第二种,视图必须相同类型,或者手动转换为 AnyView
AnimatedTabBar(selectedIndex: $selectedIndex, views: [TabButton1(), TabButton2(), TabButton3()])
必需参数
selectedIndex
- 绑定到当前索引
views
- 要在标签栏中显示的按钮
可用的自定义 - 修饰符
在弹出修饰符中使用 customize
闭包
barColor
- 标签栏本身的颜色
selectedColor
- 选定标签的颜色(使用模板渲染以正确应用此颜色)
unselectedColor
- 未选定标签的颜色
ballColor
- 球形指示器颜色
verticalPadding
- 按钮到标签栏顶部和底部边缘的空间
cornerRadius
- 作用于标签栏背景颜色的圆角
ballAnimation
- 应用到球运动曲线的动画曲线,默认为 .easeOut(duration: 0.6) indentAnimation
- 标签栏缩进增加/减少的动画曲线
buttonsAnimation
- 颜色应用到标签按钮的动画曲线
didSelectIndex
- 每次标签点击时都会调用的闭包
ballTrajectory
- 球形指示器动画路径选项
parabolic
- 沿抛物线弧到达选定的按钮teleport
- 瞬间消失并在选中标签上方重新出现straight
- 滑到选定的标签
内置可动画标签按钮
默认情况下,标签页只有简单的颜色动画,但您可以自定义它。该库内置两种可用类型,您可以直接使用:DropletButton
和 WiggleButton
,以及在示例项目中提供的超定制型 ColorButton
。请随意将在您的项目中使用它们或在此基础上构建自己的按钮。
示例
尝试 AnimatedTabBar 示例
- 克隆仓库
https://github.com/exyte/AnimatedTabBar.git
- 打开终端并运行
cd <AnimatedTabBarRepo>/Example/
- 运行
pod install
以安装所有依赖 - 运行
open AnimatedTabBarExample.xcworkspace/
在 Xcode 中打开项目 - 试一试!
安装
Swift Package Manager
dependencies: [
.package(url: "https://github.com/exyte/AnimatedTabBar.git")
]
CocoaPods
要安装 AnimatedTabBar
,只需将以下行添加到您的 Podfile 中
pod 'ExyteAnimatedTabBar'
Carthage
要使用 Carthage 将 AnimatedTabBar
集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "Exyte/AnimatedTabBar"
需求
- iOS 16+
- Xcode 14+
鸣谢
非常感谢 Yeasin Arafat 提供那美丽的原始作品,我们用 SwiftUI 重新创作了它。
我们的其他开源 SwiftUI 库
PopupView - 提示和弹出窗口库
Grid - 最强大的网格容器
ScalingHeaderScrollView - 带有粘性头部的滚动视图,随着滚动而缩小。
MediaPicker - 可定制的媒体选择器
Chat - 完全可定制的消息单元、输入视图和内置媒体选择器的聊天 UI 框架
ConcentricOnboarding - 动画引导流程
FloatingButton - 漂浮按钮菜单
ActivityIndicatorView - 一系列动画加载指示器
ProgressIndicatorView - 多个动画进度指示器
SVGView - SVG解析器
LiquidSwipe - 液态导航动画