SheetyColors 是一款用于 iOS 的动作表样式的颜色选择器
📱 基于 UIAlertController: SheetyColors API 基于 UIKit 的UIAlertController
。您可以像为任何其他操作表定义UIAlertAction
实例一样,向其中添加按钮。因此,它与所有其他原生系统对话框的外观和感觉完美集成。然而,您也可以选择使用颜色选择器本身,而不使用操作表。🎨 全面可配置: 您可以选择各种配置,例如- 颜色模型(RGB、HSB 或灰度)
- 支持透明度组件
- 触觉反馈
- 文本/消息标签
🎚️ 滑块和十六进制输入: 您可以通过使用滑块或新添加的十六进制输入创建新颜色。👶 直观的用户界面: 每个滑块都包含一个渐变,它可以给您一个关于更改单个滑块值如何影响结果的颜色的概念。所有控件都支持触觉反馈,并且会对任何错误,如无效的十六进制值做出反应。🍏 支持 SwiftUI 和 iOS 13: SheetyColors 也可以用作您的 SwiftUI 项目的部分。查看 用法 部分,以获取更多信息。该库还针对新的深色模式进行了优化。
示例
新增:十六进制输入 | RGB、HSB 和灰度 | 完全可配置 | 支持深色模式 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
要快速了解,您可以在 Appetize.io 上查看示例应用程序。要从 Xcode 运行示例项目,首先从仓库克隆项目,然后在示例目录中首先运行 pod install
。
安装
目前有四种不同的方法将 SheetyColors 集成到您的应用程序中。
CocoaPods
use_frameworks!
target 'MyApp' do
pod 'SheetyColors'
end
Swift Package Manager
dependencies: [
.package(url: "https://github.com/chrs1885/SheetyColors.git", from: "1.2.1")
]
Carthage
github "chrs1885/SheetyColors"
手动
只需将 SheetyColors.xcodeproj
拖放到您的项目中。同时确保在主项目的“常规”选项卡中将 SheetyColors.framework
添加到应用的嵌入框架中。
使用方法
创建 SheetyColors 选择器与创建正常样式的 UIAlertController
相同。首先,您需要导入库
import SheetyColors
接下来,只需创建一个 SheetyColorsController
实例并给它添加一些操作
// Create a SheetyColors view with your configuration
let config = SheetyColorsConfig(alphaEnabled: true, initialColor: color, hapticFeedbackEnabled: true, title: "Create a color", type: .rgb)
let sheetyColors = SheetyColorsController(withConfig: config)
// Add a button to accept the selected color
let selectAction = UIAlertAction(title: "Save Color", style: .default, handler: { _ in
self.color = sheetyColors.color
}
sheetyColors.addAction(selectAction)
// Add a cancel button
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
sheetyColors.addAction(cancelAction)
// Now, present it to the user
present(sheetyColors, animated: true, completion: nil)
请查看文档了解有关 API 的更多信息。
自定义容器视图
如果您希望在一个自定义视图控制器中使用颜色选择器,可以直接创建选择器的视图控制器
return SheetyColorsViewFactory.createView(withConfig: config, delegate: myDelegate)
myDelegate
实例的类需要遵守 SheetyColorsDelegate
class MyViewController: SheetyColorsDelegate {
...
func didSelectColor(_ color: UIColor) {
self.color = color
}
}
didSelectColor
在任何滑动更改时会被调用。
SwiftUI支持
在SwiftUI项目中,颜色选择器不能在Apple提供的操作表中使用。但是,您可以通过使用SheetyColorsView
将视图嵌入到您自定义的视图容器中。
struct ContentView: View {
@State var selectedColor: UIColor = UIColor.white
let config = SheetyColorsConfig(alphaEnabled: true, hapticFeedbackEnabled: true, initialColor: UIColor.red, type: .rgb)
var body: some View {
Text("Select a color")
.foregroundColor(Color(self.$selectedColor.wrappedValue))
SheetyColorsView(config: config, color: self.$selectedColor)
}
}
这里是一个示例,演示了如何在SwiftUI和SheetyColors中创建一个具有操作表样式的颜色选择器。
贡献
我们非常期待您通过提出或添加功能、报告错误或宣传项目的方式来为此项目做出贡献。请快速查看我们的贡献指南。
许可证
SheetyColors在MIT许可下提供。有关更多信息,请参阅LICENSE文件。