SheetyColors 1.2.1

SheetyColors 1.2.1

Christoph Wendt 维护。



Awesome Cocoapods(https://cocoapods.org.cn/pods/SheetyColors) Carthage compatible UIKit & SwiftUI iOS 13 Ready Swift Build Status Twitter

SheetyColors 是一款用于 iOS 的动作表样式的颜色选择器

  • 📱 基于 UIAlertController: SheetyColors API 基于 UIKit 的 UIAlertController。您可以像为任何其他操作表定义 UIAlertAction 实例一样,向其中添加按钮。因此,它与所有其他原生系统对话框的外观和感觉完美集成。然而,您也可以选择使用颜色选择器本身,而不使用操作表。
  • 🎨 全面可配置: 您可以选择各种配置,例如
    • 颜色模型(RGB、HSB 或灰度)
    • 支持透明度组件
    • 触觉反馈
    • 文本/消息标签
  • 🎚️ 滑块和十六进制输入: 您可以通过使用滑块或新添加的十六进制输入创建新颜色。
  • 👶 直观的用户界面: 每个滑块都包含一个渐变,它可以给您一个关于更改单个滑块值如何影响结果的颜色的概念。所有控件都支持触觉反馈,并且会对任何错误,如无效的十六进制值做出反应。
  • 🍏 支持 SwiftUI 和 iOS 13: SheetyColors 也可以用作您的 SwiftUI 项目的部分。查看 用法 部分,以获取更多信息。该库还针对新的深色模式进行了优化。

示例

新增:十六进制输入 RGB、HSB 和灰度 完全可配置 支持深色模式
Color picker supporting RGB, HSB, and Grayscale Color picker supporting RGB, HSB, and Grayscale Fully configurable Dark mode support

要快速了解,您可以在 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文件。