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: 2 months 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 (12 months ago)
- Last Synced: 2024-11-27T11:36:23.989Z (3 months 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.