FloatingButton 1.3.0

FloatingButton 1.3.0

Exyte 维护。



FloatingButton

使用 SwiftUI 创建的易于定制的浮动按钮菜单


我们是一家开发公司,致力于打造卓越的应用。

SPM Compatible Cocoapods Compatible Carthage Compatible License: MIT

用法

  1. 创建主按钮视图和多个子菜单按钮 — 两者都应转换为 AnyView 类型。

  2. 将它们传递给 FloatingButton 构造函数

    FloatingButton(mainButtonView: mainButton, buttons: buttons)
  3. 您还可以传递一个绑定,该绑定将确定菜单是否当前开放。您可以使用此功能在子菜单按钮点击时关闭菜单,例如。

FloatingButton(mainButtonView: mainButton, buttons: buttons, isOpen: $isOpen)
  1. 链接 .straight().circle() 以指定所需的菜单类型。
  2. 随后可以链接任何您想要的操作。例如
    FloatingButton(mainButtonView: mainButton, buttons: textButtons)
        .straight()
        .direction(.top)
        .alignment(.left)
        .spacing(10)
        .initialOffset(x: -1000)
        .animation(.spring())
    
    FloatingButton(mainButtonView: mainButton2, buttons: buttonsImage.dropLast())
        .circle()
        .startAngle(3/2 * .pi)
        .endAngle(2 * .pi)
        .radius(70)

通用选项

spacing - 子菜单按钮之间的间隔
initialScaling - 菜单关闭时子菜单按钮的大小乘数
initialOffset - 菜单关闭时子菜单按钮的偏移量
initialOpacity - 菜单关闭时子菜单按钮的透明度
animation - 自定义 SwiftUI 动画,如 Animation.easeInOut()Animation.spring()
delays - 每个子菜单按钮动画开始的延迟 - 您可以传递延迟数组的延迟 - 一个用于每个元素 - 或者您可以传递 delayDelta - 然后此相同的延迟将用于每个元素 wholeMenuSize - 传递 CGSize 绑定以获取菜单大小的更新。菜单的大小包括主要按钮框架以及所有元素的框架 menuButtonsSize - 传递 CGSize 绑定以获取组合菜单元素大小的更新

仅直链菜单选项

direction - 子菜单按钮相对于主菜单按钮的位置
alignment - 子菜单按钮相对于主菜单按钮的对齐方式

仅圆形选项

起始角度
结束角度
radius - 主按钮中心与子菜单按钮中心的距离

示例

尝试 FloatingButton 的示例

  1. 克隆代码库 git clone [email protected]:exyte/FloatingButton.git.
  2. 打开 <FloatingButtonRepo>/Example.
  3. 运行 Example.xcodeproj - 框架作为本地 SPM 包导入。
  4. 试试吧!

安装

Swift 包管理器

dependencies: [
    .package(url: "https://github.com/exyte/FloatingButton.git")
]

CocoaPods

pod 'FloatingButton'

Carthage

github "Exyte/FloatingButton"

需求

  • iOS 14.0+ / macOS 11.0+ / tvOS 14.0+ / watchOS 7.0+
  • Xcode 12+

我们的其他开源SwiftUI库

PopupView - 消息和弹出视图库
Grid - 最强大的网格容器
ScalingHeaderScrollView - 具有粘性头部并随滚动缩小的滚动视图
AnimatedTabBar - 具有预设动画的标签栏
MediaPicker - 可定制的媒体选择器
Chat - 可全定制消息单元格、输入视图和内置媒体选择器的聊天界面框架
ConcentricOnboarding - 动画引导流程
ActivityIndicatorView - 许多动画加载指示器
ProgressIndicatorView - 许多动画进度指示器
SVGView - SVG解析器
LiquidSwipe - 液体导航动画