# JCColorPicker :art:
![Supported Version](https://img.shields.io/badge/Swift-2.2-yellow.svg)
![Platform](https://img.shields.io/badge/Platform-iOS-lightgray.svg)
![CocoaPods](https://img.shields.io/badge/CocoaPods-1.0-green.svg)
![License](https://img.shields.io/badge/License-MIT-blue.svg)
An intuitive iOS color picker built in Swift.
## Installation
### Cocoapods
```
pod 'JCColorPicker'
```
### Manually
Add all files from the JCColorPicker folder to your project.
## Example
```Swift
let neatColorPicker = JCColorPicker(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
neatColorPicker.padding = 5
neatColorPicker.stroke = 3
neatColorPicker.hexLabel.textColor = UIColor.whiteColor()
self.view.addSubview(neatColorPicker)
```
## Customization
### Properties
| Property | Description |
| :-------------: |:-------------|
| delegate | JCColorPickerDelegate |
| padding | The padding on each side of the view (default=10) |
| stroke | The stroke of the rainbow track (deafult=1) |
| currentColor | The currently set color by the control. It is displayed in the add button. |
| currentAngle | The angle which the handle is currently sitting at. Can be changed and the view can be re-drawn to show the change.
| handleSize | Returns the size of the handle. |
### Sub-Components
Sub-Components can be hidden and customized to the preferred liking.
| Component | Description |
| :-------------: |:-------------|
| hexLabel | A UILabel which displays the hex value of the current color. |
| shadeSlider | A custom slider which adjusts the shade of the current color. |
| addButton | A UIButton in the center of the control. The `colorPickerDidChooseColor(colorPicker: color:)` delegate function is called when this is tapped. |
| handleView | A JCColorHandle (custom UIView) which displays the current color and can be moved around the circle.|
| handleLine | A line which is drawn from the addButton to the handleView. |
### Supported UIControlEvents
`.TouchDown` -> called when the handle is first grabbed
`.TouchUpInside` -> called when handle is let go
`.ValueChanged` -> called whenever the color has changed hue or shade
`.TouchDragInside` -> called when the handle has moved by a drag action
## Additional Info
Check out the [Wiki](https://github.com/joncardasis/JCColorPicker/wiki/Challenges-and-Solutions) for more.
## License
JCColorPicker is available under the MIT license. See the LICENSE file for more info.