swiftui-async-button:SwiftUI 异步按钮控件





项目名称:swiftui-async-button

swiftui-async-button 是一个开源的 SwiftUI 库,提供了一个能够执行异步代码的按钮控件 AsyncButton。这个控件与 SwiftUI 的 Button 拥有相同的 API,但是能够处理异步操作。以下是该项目的主要特点和使用方法:

使用方法

AsyncButton 的使用非常简单,你只需要将原有的 Button 替换为 AsyncButton 并在闭包中使用 try await 即可:

AsyncButton("Run") { try await run() }

除了基本的 Button 初始化方式,AsyncButton 还提供了 AsyncButtonOptions 来指定特殊行为:

AsyncButton("Ciao", options: [.showProgressViewOnLoading, .showAlertOnError], transaction: Transaction(animation: .default)) {
    try await run()
}

对于更高级的自定义需求,你可以访问 AsyncButtonOperations:

AsyncButton {
    try await run()
} label: { operations in
    if operations.contains { operation in
        if case .loading = operation {
            return true
        } else {
            return false
        }
    } {
        Text("Loading")
    } else if
        let last = operations.last,
        case .completed(_, let result) = last
    {
        switch result {
        case .failure:
            Text("Try again")
        case .success:
            Text("Run again")
        }
    } else {
        Text("Run")
    }
}

安装

  1. 在 Xcode 中,打开你的项目,然后前往 FileSwift PackagesAdd Package Dependency...

  2. 粘贴仓库 URL(https://github.com/lorenzofiamingo/swiftui-async-button)并点击 Next

  3. 点击 Finish

其他项目

或许喜欢

swiftui-vertical-tab-view:SwiftUI 垂直分页标签视图

swiftui-vertical-tab-view 是一个 SwiftUI 库,提供了 iOS 14 风格的垂直分页标签视图,支持自定义索引位置和隐藏索引。

最近更新 2024-12-09

Liquid-Menu-Buttons:SwiftUI实现的流动式菜单按钮

Liquid-Menu-Buttons 是一个 SwiftUI 库,提供了具有流动液体效果的过渡按钮设计,为按钮界面带来创新和动态的视觉效果。

最近更新 2024-12-09

swiftui-map-item-picker:SwiftUI 地图项目选择器

swiftui-map-item-picker 是一个 SwiftUI 地图项目选择器,支持在 iOS 和 Mac Catalyst 上选择位置。

最近更新 2024-12-09

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1