一款直观的 HSB 颜色选择器,采用 Swift 构建。支持多选处理,并可定制以满足您需求。
示例
let colorPicker = ChromaColorPicker(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
addSubview(colorPicker)
// Optional: Attach a ChromaBrightnessSlider to a ChromaColorPicker
let brightnessSlider = ChromaBrightnessSlider(frame: CGRect(x: 0, y: 0, width: 280, height: 32))
addSubview(brightnessSlider)
colorPicker.connect(brightnessSlider) // or `brightnessSlider.connect(to: colorPicker)`
- 查看更多《示例》应用。
使用方法
多处理
// Add handle at color
let peachColor = UIColor(red: 1, green: 203 / 255, blue: 164 / 255, alpha: 1)
colorPicker.addHandle(at: peachColor)
// Add handle with reference
let customHandle = ChromaColorHandle()
customHandle.color = UIColor.purple
colorPicker.addHandle(customHandle)
// Add handle and keep reference
let handle = colorPicker.addHandle(at: .blue)
自定义处理图标
let homeHandle = ChomaColorHandle(color: .blue)
let imageView = UIImageView(image: #imageLiteral(resourceName: "home-icon").withRenderingMode(.alwaysTemplate))
imageView.contentMode = .scaleAspectFit
imageView.tintColor = .white
homeHandle.accessoryView = imageView
homeHandle.accessoryViewEdgeInsets = UIEdgeInsets(top: 2, left: 4, bottom: 4, right: 4)
colorPicker.addHandle(homeHandle)
安装
Carthage
github "joncardasis/ChromaColorPicker"
Cocoapods
pod 'ChromaColorPicker'
手动
将源文件夹中的所有文件添加到您的项目中。
组件
组件 | 描述 |
---|---|
ChromaColorPicker | 支持添加多个颜色选择手柄的HSB颜色选择器。 |
ChromaBrightnessSlider | 一个可以连接到任何 ChromaColorPicker 的UIControl(通过connect(to:) 方法)。ChromaBrightnessSlider 也可以作为一个独立UIControl使用。 |
支持的UIControlEvents
ChromaBrightnessSlider
和ChromaColorPicker
都遵循UIControl协议。每个都会发送UIControlEvents,可以通过UIControl的addTarget
方法来观察。
ChromaColorPicker
事件 | 描述 |
---|---|
.valueChanged |
每当颜色发生变化时都会调用。 |
.touchUpInside |
当手柄释放时调用。 |
ChromaBrightnessSlider
事件 | 描述 |
---|---|
.touchDown |
当滑动器被抓住时调用。 |
.valueChanged |
每当滑动器移动且值发生变化时调用。 |
.touchUpInside |
当滑动器手柄释放时调用。 |
// Example
brightnessSlider.addTarget(self, action: #selector(sliderDidValueChange(_:)), for: .valueChanged)
@objc func sliderDidValueChange(_ slider: ChromaBrightnessSlider) {
print("new color: \(slider.currentColor)")
}
授权协议
ChromaColorPicker可在MIT协议下使用。更多信息请参阅LICENSE文件。