Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joncardasis/ChromaColorPicker
:art: An intuitive iOS color picker built in Swift.
https://github.com/joncardasis/ChromaColorPicker
carthage cocoapods color color-palette color-picker color-theme customizable ios ios-animation swift swift5
Last synced: 3 days ago
JSON representation
:art: An intuitive iOS color picker built in Swift.
- Host: GitHub
- URL: https://github.com/joncardasis/ChromaColorPicker
- Owner: joncardasis
- License: mit
- Created: 2016-07-21T19:35:31.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-13T01:38:27.000Z (10 months ago)
- Last Synced: 2024-11-27T11:36:23.989Z (15 days ago)
- Topics: carthage, cocoapods, color, color-palette, color-picker, color-theme, customizable, ios, ios-animation, swift, swift5
- Language: Swift
- Homepage:
- Size: 9.76 MB
- Stars: 569
- Watchers: 14
- Forks: 127
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - ChromaColorPicker - An intuitive iOS color picker built in Swift. (Color / Linter)
- awesome-swift - ChromaColorPicker - An intuitive and fun iOS color picker. (Libs / Colors)
- awesome-swift - ChromaColorPicker - An intuitive and fun iOS color picker. (Libs / Colors)
- fucking-awesome-swift - ChromaColorPicker - An intuitive and fun iOS color picker. (Libs / Colors)
- awesome-ios-star - ChromaColorPicker - An intuitive iOS color picker built in Swift. (Color / Linter)
- fucking-awesome-ios - ChromaColorPicker - An intuitive iOS color picker built in Swift. (Color / Linter)
- fucking-awesome-ios - ChromaColorPicker - An intuitive iOS color picker built in Swift. (Color / Linter)
- awesome-swift - ChromaColorPicker - An intuitive iOS color picker built in Swift. ` 📝 a year ago ` (Colors [🔝](#readme))
README
An intuitive HSB color picker built in Swift. Supports multiple selection handles and is customizable to your needs.
Looking for version 1.x?
Version 1.x.x can be found on the legacy branch. While the pod is still available, it is deprecated and projects should migrate to 2.0.
## Examples
```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)`
```- View the _Example_ app for more.
## Usage
### Multiple Handles
```Swift
// 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)
```### Custom Handle Icon
```Swift
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)
```## Installation
### Carthage
```bash
github "joncardasis/ChromaColorPicker"
```### Cocoapods
```bash
pod 'ChromaColorPicker'
```
### Manually
Add all files from the `Source` folder to your project.## Components
| Component | Description |
| :-------: | :---------: |
| ChromaColorPicker | An HSB color picker with support for adding multiple color selection handles. |
| ChromaBrightnessSlider | 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
Both `ChromaBrightnessSlider` and `ChromaColorPicker` conform to UIControl. Each send UIControlEvents which can be observed via via `UIControl`'s `addTarget` method._ChromaColorPicker_
| Event | Description |
| :-----------------:|:-------------|
| `.valueChanged` | Called whenever the color has changed. |
| `.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. |```Swift
// Example
brightnessSlider.addTarget(self, action: #selector(sliderDidValueChange(_:)), for: .valueChanged)@objc func sliderDidValueChange(_ slider: ChromaBrightnessSlider) {
print("new color: \(slider.currentColor)")
}
```## License
ChromaColorPicker is available under the MIT license. See the LICENSE file for more info.