mirror of
https://github.com/joncardasis/ChromaColorPicker.git
synced 2024-11-25 22:12:01 +03:00
99 lines
3.0 KiB
Markdown
99 lines
3.0 KiB
Markdown
<p align="center">
|
|
<img src=".github/Logo.png" width="480" max-width="90%" alt="ChromaColorPicker 2.0" />
|
|
</p>
|
|
|
|
<p align="center">
|
|
<img src="https://img.shields.io/badge/Swift-5.0-orange.svg" />
|
|
<img src="https://img.shields.io/badge/platform-iOS-lightgray.svg" />
|
|
<img src="https://img.shields.io/badge/license-MIT-blue.svg" />
|
|
<img src="https://img.shields.io/badge/Carthage-compatible-green.svg" />
|
|
<img src="https://travis-ci.com/joncardasis/ChromaColorPicker.svg?branch=develop" />
|
|
</p>
|
|
|
|
An intuitive HSB color picker built in Swift. Supports multiple selection handles and is customizable to your needs.
|
|
|
|
> TODO: Image / GIF
|
|
|
|
## Examples
|
|
```Swift
|
|
let colorPicker = ChromaColorPicker(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
|
|
addSubview(colorPicker)
|
|
|
|
// Optional: Add multiple handles to the color picker
|
|
|
|
// 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)`
|
|
```
|
|
|
|
## Usage
|
|
### Multiple Handles
|
|
```Swift
|
|
// Add handles
|
|
{TODO}
|
|
|
|
// Add a custom handle
|
|
{TODO}
|
|
|
|
// Remove handles
|
|
{TODO}
|
|
```
|
|
|
|
### Supported UIControlEvents
|
|
|
|
## Installation
|
|
### Carthage
|
|
```bash
|
|
github "joncardasis/ChromaColorPicker"
|
|
```
|
|
|
|
### Cocoapods
|
|
```bash
|
|
pod 'ChromaColorPicker'
|
|
```
|
|
### Manually
|
|
Add all files from the `Source` folder to your project.
|
|
|
|
## Components
|
|
### ChromaColorPicker
|
|
An HSB color picker with support for adding multiple color selection handles.
|
|
|
|
### ChromaBrightnessSlider
|
|
[ChromaBrightnessSlider]() is a slider UIControl which can be attached to any `ChromaColorPicker` via the `connect(to:)` method. ChromaBrightnessSlider can also function as a stand-alone UIControl.
|
|
|
|
### Supported UIControlEvents
|
|
You can observe on the following UIControlEvents via `UIControl`'s `addTarget` method:
|
|
|
|
```Swift
|
|
addTarget(self, action: #selector(sliderDidValueChange(_:)), for: .valueChanged)
|
|
|
|
@objc func sliderDidValueChange(_ slider: ChromaBrightnessSlider) {
|
|
print("new color: \(slider.currentColor)")
|
|
}
|
|
```
|
|
|
|
_ChromaColorPicker_
|
|
| Event | Description |
|
|
| :-----------------:|:-------------|
|
|
| `.touchDown`(no) | Called when a handle is first grabbed. |
|
|
| `.touchUpInside`(no) | Called when a handle is let go. |
|
|
| `.valueChanged` | Called whenever the color has changed. |
|
|
| `.touchDragInside`(no) | Called when a handle has moved via a drag action. |
|
|
| `.touchUpInside` | Called when a handle is released. |
|
|
|
|
_ChromaBrightnessSlider_
|
|
| Event | Description |
|
|
| :-----------------:|:-------------|
|
|
| `.touchDown` | Called when a the slider is grabbed. |
|
|
| `.valueChanged` | Called whenever the slider is moved and the value has changed. |
|
|
| `.touchUpInside` | Called when the slider handle is released. |
|
|
|
|
##### Example
|
|
```Swift
|
|
```
|
|
|
|
## License
|
|
ChromaColorPicker is available under the MIT license. See the LICENSE file for more info.
|