关于 ActionMenu

ActionMenu 是一个 SwiftUI 库,为 iOS 应用程序提供了一个灵活易用的菜单组件,类似于 Apple 内置邮件应用中的菜单。

Video showing an iOS UI with a list of fruits. As the user selects the "More" action from the swipe action bar, a bottom sheet with a number of actions appears. The user selects several of the listed actions to manipulate the fruit list items.

要求

安装

Xcode

  1. 在 Xcode 中,打开你的项目并导航到 File > Add Packages...
  2. 在搜索字段中,输入软件包仓库 URL:<repository_url>
  3. 当软件包出现在搜索结果中时,选择它
  4. 在 “Add to Project” 字段中选择你的目标应用程序
  5. 点击 “Add Package”

Swift Package Manager

将以下依赖项添加到你的 Package.swift 文件中

dependencies: [
  .package(url: "<repository_url>", from: "1.0.0")
]

然后,将 “ActionMenu” 作为你目标的依赖项包含进来

targets: [
  .target(
    name: "YourTarget",
    dependencies: ["ActionMenu"])
]

快速开始

  1. 在你的 SwiftUI 文件中导入软件包
import SwiftUI
import ActionMenu
  1. 在任何视图上使用 .actionMenu 修饰符
.actionMenu(title: "Actions", isPresented: $isShowingMenu) {
  Button("Option 1") {
    // Handle option 1
  }
  Button("Option 2") {
    // Handle option 2
  }
}

示例

这是一个完整的示例,展示了如何在列表中使用 ActionMenu

struct ContentView: View {
  @State private var isMoreActionTapped = false
  @State private var selectedItem: String? = nil
    
  var body: some View {
    List(items, id: \.self) { item in
      Text(item)
        .swipeActions {
          Button("More", systemImage: "ellipsis.circle") {
            selectedItem = item
            isMoreActionTapped.toggle()
          }
        }
    }
    .actionMenu(title: "Actions", isPresented: $isMoreActionTapped) {
      Button("Flag", systemImage: "flag") {
        // Handle edit action
      }
      Button("Delete", role: .destructive) {
        // Handle delete action
      }
    }
  }
}

文档

[TODO: 添加 DocC 文档]

贡献

欢迎贡献!请随时提交 PR。

许可证

ActionMenu 基于 Apache 2 许可证授权。有关详细信息,请参阅 LICENSE 文件。

作者

Peter Friese