ActionButton:SwiftUI 可状态切换按钮





项目名称:action-button

ActionButton 是一个 SwiftUI 库,它提供了一个替代传统 Button 的组件,该组件内置了 .enabled.disabled.loading 三种状态,并支持自动状态间动画切换。以下是该项目的主要特点和使用方法:

使用方法

  1. 导入 ActionButton

  2. 创建一个 ActionState 类型的状态或绑定变量,这将驱动 ActionButton 的内容。

  3. ActionButton 添加到你的视图中并进行配置。

以下是视频演示中使用的示例代码,展示了如何实现状态间的动画切换:

@State var actionButtonState: ActionButtonState =
    .enabled(.init(title: "Load Something", systemImage: "bolt"))

var body: some View {

    VStack {

        Text("Just a little button.")
        ActionButton(state: $actionButtonState, onTap: {

            loadSomething()
        }, backgroundColor: .red)
            .frame(maxWidth: 250)
    }
}

状态间动画切换。

状态间的动画切换是自动处理的。以下是我们的 loadSomething() 函数。

private func loadSomething() {

    actionButtonState = .loading(.init(title: "Loading", systemImage: "bolt"))

    DispatchQueue.main.asyncAfter(deadline: .now() + 1.25) {

        actionButtonState = .disabled(.init(title: "Loaded", systemImage: "checkmark"))
    }
}

在我们的示例中,我们使用延迟来简单地更改状态变量 actionButtonState。视图将相应地做出响应。

配置

ActionButton 在其初始化中接受一些参数:

  • state: ActionButtonState - 这是一个枚举(enabled, loading, disabled),带有关联值类型 ActionButtonModel,允许你设置按钮的 SFSymbol 和文本。

  • onTap: (() -> Void) - 一个回调,用于处理任何点击。这是必需的,因为 ActionButton 处理自己的点击动画。你自己的 onTapGesture 在这里不会起作用。

  • backgroundColor: Color - 按钮在其 enabled 状态下的背景颜色。

  • foregroundColor: Color - 按钮在所有状态下的前景色。

或许喜欢

ActivityIndicatorView:SwiftUI 创建的预设加载指示器库

ActivityIndicatorView 是一个 SwiftUI 库,提供多种预设的加载动画指示器,支持自定义样式和动画,适用于 iOS、watchOS、tvOS 和 macOS 平台。

最近更新 2024-12-11

Animatable:纯SwiftUI动画修饰按钮和视图库

Animatable 是一个纯SwiftUI动画库,提供多种按钮和视图动画修饰,支持自定义动画效果,增强用户界面动态体验。

最近更新 2024-12-09

ConcentricOnboarding:SwiftUI 制作的同心引导流程库

ConcentricOnboarding 是一个 SwiftUI 库,用于创建具有动画效果的同心引导流程,支持自定义页面和交互,适用于应用的新手引导。

最近更新 2024-12-11

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1