LabelButtonKit:SwiftUI 标签按钮库支持动态类型





项目名称:LabelButtonKit

LabelButtonKit 是一个用 SwiftUI 编写的迷你库,用于创建带有标签的按钮(SF Symbols)。以下是该项目的主要特点和使用方法:

功能特点

  • LabelButtonView:框架的主要视图,只需调用它并传递一个 LabelButton 模型即可。

  • 快速简单:可以完全自定义,或者只传递 SF Symbol 字符串(图标)、文本和背景颜色。所有默认实现都已提供。

  • LabelButtonListView:想要以列表形式展示?我们为你准备好了。只需传递一个 LabelButton 数组,我们就会为你即时创建它们,并且完全适应任何辅助功能/动态类型的情况。

  • 额外视图组件:这个包还附带了一些修饰符、组件和视图,你可以自由使用。

  • 构建轻巧:以 Swift 构建,考虑了轻量级。

  • 100% Swift:完全使用 Swift 编写。

  • 三个简单示例:包内包含三个示例,展示了 SwiftUI 的强大功能。

  • 文档齐全:文档齐全,经过测试(视图经过 ViewInspector 测试)。

  • 自定义方面:包括图标(SF Symbol 字符串)、文本、文本颜色、图标颜色、按钮背景颜色、颜色不透明度、圆角、垂直填充、水平填充、自定义框架和操作等。

使用方法

在生产代码中使用 LabelButtonKit,只需导入 LabelButtonKit:

import LabelButtonKit

然后,你可以根据需要使用它。例如:

@StateObject var labelButtonModel = LabelButton(icon: "text.bubble.fill", text: "Translate", textColor: .accentColor, iconColor: .accentColor, backgroundColor: .accentColor.opacity(0.15))

var body: some View {
    LabelButtonView(label: labelButtonModel)
}

使用 LabelButtonListView 的示例:

struct SimpleListExampleView: View {
    
    @State var labelButtons: [LabelButton] = [LabelButton(backgroundColor: .purple.opacity(0.50)), LabelButton(), LabelButton()]
    
    var body: some View {
        LabelButtonListView(data: labelButtons)
            .padding()
    }
}

或者,你也可以在自定义堆栈中使用它,并验证 dynamicTypeSize(不需要 LabelButtonView,因为它已经这样做了):

struct HorizontalStackExampleView: View {
    
    @Environment(\.dynamicTypeSize) var sizeCategory
    
    var needsLargerContent: Bool {
        sizeCategory >= .xxLarge
    }
    
    var body: some View {
        if needsLargerContent {
            VStack(spacing: 5) {
                LabelButtonView(label: LabelButton())
                LabelButtonView(label: LabelButton())
                LabelButtonView(label: LabelButton())
                LabelButtonView(label: LabelButton())
            }
        } else {
            HStack(spacing: 5) {
                LabelButtonView(label: LabelButton())
                LabelButtonView(label: LabelButton())
                LabelButtonView(label: LabelButton())
                LabelButtonView(label: LabelButton())
            }
            .padding()
        }
    }
}

这个包还包括几个 SwiftUI 视图,以时尚的方式展示类型、颜色和符号。还有网格和堆栈。你可以随意使用这些视图。探索它们!

示例应用

LabelButtonKit 还附带了几个场景,你可以从中学习如何使用类型。例如:

Example App
Example App
Example App
Example App
Example App
Example App

所有示例都位于 Examples 文件夹中。

Swift Package Manager

你可以通过 Swift Package Manager 添加这个库。

  1. 转到 File > Add Packages

  2. 添加包对话框将出现,默认显示 Apple 包。

  3. 在右上角,粘贴 https://github.com/MarcosAtMorais/LabelButtonKit搜索栏

  4. Return 开始搜索。

  5. 点击 Add Package

  6. 完成!随时 import LabelButtonKit 使用它。

系统要求

  • iOS 15+

  • macOS 12+

  • watchOS 7+

  • tvOS 14+

或许喜欢

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

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

最近更新 2024-12-11

FlowStacks:为SwiftUI导航添加超能力

FlowStacks是一个SwiftUI库,它扩展了NavigationStack API,允许开发者使用统一的API进行页面推送、展示sheet和全屏覆盖,支持iOS、tvOS、watchOS和macOS。

最近更新 2024-12-13

Atributika:Swift库将HTML风格文本转换为NSAttributedString

Atributika是一个Swift库,能够识别和样式化HTML风格标签、链接、电话号码等,并生成NSAttributedString,支持iOS、tvOS、watchOS和macOS。

最近更新 2024-12-09

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1