界面Swift
SwiftUI-Components
面向 iOS 17 和 macOS 14 的现成 SwiftUI view,带有表单校验和无障碍手势
32星标数最新版本: v2.1.0更新时间: 2026年10月15日
支持平台:iOS 17macOS 14
许可证: MIT
一个由 SwiftUI view 组成的无依赖 Swift package:按钮、卡片、图表、带校验的表单输入、手势、列表、overlay、加载指示器和 toast。每个组件都是一个通过初始化方法配置的纯 View,因此你可以只用其中一两个,而不必采用整套主题系统。背后的逻辑,例如卡号校验、validator、JSON 表单 schema,以及滑动和形状识别,都由在 macOS 和 iPhone 模拟器上运行的 Swift Testing suite 覆盖。
功能特性
- 从源码统计出的 223 个 view、12 个 view modifier 和 5 个手势 modifier,分属 14 个分类
- 可组合的 validator、首次编辑后才出现的错误提示、带防抖的服务器端校验,以及多步骤表单
- 从 JSON 渲染的表单;schema 中的模式匹配按每次匹配 20 ms、每次校验 100 ms 的预算运行
- 滑动、边缘滑动、滑动序列、pinch-rotate-drag 组合手势以及形状绘制,每种都带有对应的无障碍操作
- iOS 和 macOS 共用一套代码:几乎所有 UIKit 专属细节都在单个平台文件中映射为 AppKit 对应项或 no-op
- Swift 6 语言模式,没有依赖;README 中的示例代码由示例应用和 test target 编译验证
- 用 ColorContrast 计算 SwiftUI 颜色的 WCAG 2 对比度和等级
快速开始
swift
1import SwiftUI2import SwiftUIComponents3 4struct ContentView: View {5 @State private var rating = 3.06 7 var body: some View {8 VStack(spacing: 20) {9 Text("Rate this app")10 .font(.headline)11 RatingInput(rating: $rating)12 PrimaryButton("Send rating") {13 print("Rating: \(rating)")14 }15 }16 .padding()17 }18}安装
Xcode (File › Add Package Dependencies…)
text
1https://github.com/muhittincamdali/SwiftUI-Components.gitSwift Package Manager
swift
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Components.git", from: "2.1.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftUIComponents", package: "SwiftUI-Components")7 ])8]截图








时间线
仓库开放;v1.0.0 标签打在第一个 commit 上(14 个源码文件,iOS 16 和 macOS 13)
package 被精简:组件被移除并替换为占位代码(c7b3799)
重建为 2.0.0:组件在 Swift 6 语言模式下为 iOS 17 和 macOS 14 恢复,加入测试、CI 和 DocC(PR #3)
2.1.0:校验、JSON 表单、手势和对比度检测由已归档的 SwiftUI-Forms-Kit、SwiftUI-Gesture-Library 和 iOSUIComponents 重写而来(PR #6)