SwiftUIMenu 1.1.3

SwiftUIMenu 1.1.3

fmnoyader 维护。



  • 作者
  • fermoya

SwiftUIMenu

Swift Package Manager compatible Cocoapods Carthage compatible CocoaPods platforms License: MIT

SwiftUIMenu 是一个组件,允许您在应用程序中实现菜单导航模式。当用滑动或响应外部事件(如点击导航栏按钮)来显示时,菜单会呈现内容和一个选项列表。

要求

  • iOS 13.0+
  • macOS 10.15+
  • watchOS 6.0+
  • Swift 5.1+

安装

CocoaPods

pod 'SwiftUIMenu'

Swift Package Manager

打开 XCode

Carthage

github "fermoya/SwiftUIMenu"

使用方法

初始化

通过传入

  • 绑定到选中的索引
  • 绑定到确定 Menu 是否打开
  • 填充菜单的项的数组
  • ViewBuilder 用于构建每一行
  • ViewBuilder 用于构建选中项的内容
Menu(indexSelected: self.$index,
     isOpen: self.$isMenuOpen,
     menuItems: menuItems,
     menuItemRow: { index in
         Text("Option \(index)")
     },
     menuItemContent: { section in
         Text("Welcome to section \(section)")
     })
})

Example of usage

UI 定制化

有许多视图修改器可用于自定义您的 Menu 并使其更个性化。您可以指定其位置、样式或添加标题等。

默认情况下,Menu 被配置为

  • 从左侧显示
  • 具有重叠样式
  • 占用整个屏幕
  • 允许拖动

对齐方式

更改菜单的位置,使其从屏幕的左侧或右侧显示。

Menu(...)
    .alignment(.right)
左侧菜单

Left menu

右侧菜单

Right menu

页眉 & 页脚

使用这些修饰符为 菜单 添加页眉和/或页脚。

Menu(...)
    .header { MyMenuHeader() } 
    .footer { MyMenuFooter() } 

<img src="resources/header-footer.gif" alt=带有页眉和页脚的菜单" height="640"/>

样式

菜单 的显示方式添加不同的效果。

Menu(...)
    .style(.stretch)
重叠

Overlap-style menu

推送

Push-style menu

拉伸

Stretch-style menu

更多功能

您还可以

  • 使用 revealRatio 改变 菜单 打开时占用的可用空间比率
  • 使用 disableDragging 禁用 DragGesture
  • 通过简单点击,使Menu内容消失,使用allowContentTap()
  • Menu打开时,使用shadeContent遮罩内容
Menu(...)
    .revealRatio(0.8)
    .shadeContent()

示例项目

更多详细信息,请查看示例应用

欢迎您的反馈,请随时发起问题或通过[email protected]与我联系。

请自由协作,共同改进这个框架。

许可协议

SwiftUIMenu可在MIT许可协议下使用。查看许可文件获取更多信息。