From 830efd154f04cf10dd0de39fddd67c5350fa8d95 Mon Sep 17 00:00:00 2001 From: pikachu987 Date: Sun, 21 Jan 2018 23:46:01 +0900 Subject: [PATCH 1/5] add delegate --- Source/SwiftHSVColorPicker.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/SwiftHSVColorPicker.swift b/Source/SwiftHSVColorPicker.swift index f856e65..f34a59e 100755 --- a/Source/SwiftHSVColorPicker.swift +++ b/Source/SwiftHSVColorPicker.swift @@ -7,11 +7,16 @@ import UIKit +public protocol SwiftHSVColorPickerDelegate: class { + func swiftHSVColorPicker(_ color: UIColor) +} + open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelegate { var colorWheel: ColorWheel! var brightnessView: BrightnessView! var selectedColorView: SelectedColorView! - + + open weak var delegate: SwiftHSVColorPickerDelegate? open var color: UIColor! var hue: CGFloat = 1.0 var saturation: CGFloat = 1.0 @@ -71,6 +76,7 @@ open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelega brightnessView.delegate = self // Add brightnessView as a subview of this view self.addSubview(brightnessView) + self.delegate?.swiftHSVColorPicker(self.color) } func hueAndSaturationSelected(_ hue: CGFloat, saturation: CGFloat) { @@ -79,6 +85,7 @@ open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelega self.color = UIColor(hue: self.hue, saturation: self.saturation, brightness: self.brightness, alpha: 1.0) brightnessView.setViewColor(self.color) selectedColorView.setViewColor(self.color) + self.delegate?.swiftHSVColorPicker(self.color) } func brightnessSelected(_ brightness: CGFloat) { @@ -86,5 +93,6 @@ open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelega self.color = UIColor(hue: self.hue, saturation: self.saturation, brightness: self.brightness, alpha: 1.0) colorWheel.setViewBrightness(brightness) selectedColorView.setViewColor(self.color) + self.delegate?.swiftHSVColorPicker(self.color) } } From d9589c4e6a55c6ec942aa0257ac9148c1c4dcc46 Mon Sep 17 00:00:00 2001 From: pikachu987 Date: Sun, 21 Jan 2018 23:54:56 +0900 Subject: [PATCH 2/5] add isViewFlag --- Source/SwiftHSVColorPicker.swift | 42 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/Source/SwiftHSVColorPicker.swift b/Source/SwiftHSVColorPicker.swift index f34a59e..d29a06c 100755 --- a/Source/SwiftHSVColorPicker.swift +++ b/Source/SwiftHSVColorPicker.swift @@ -13,11 +13,14 @@ public protocol SwiftHSVColorPickerDelegate: class { open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelegate { var colorWheel: ColorWheel! - var brightnessView: BrightnessView! - var selectedColorView: SelectedColorView! + var brightnessView: BrightnessView? + var selectedColorView: SelectedColorView? open weak var delegate: SwiftHSVColorPickerDelegate? open var color: UIColor! + open var isSelectedColorView = true + open var isBrightnessView = true + var hue: CGFloat = 1.0 var saturation: CGFloat = 1.0 var brightness: CGFloat = 1.0 @@ -60,22 +63,29 @@ open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelega // let the all the subviews stay in the middle of universe horizontally let centeredX = (self.bounds.width - colorWheelSize) / 2.0 - // Init SelectedColorView subview - selectedColorView = SelectedColorView(frame: CGRect(x: centeredX, y:0, width: colorWheelSize, height: selectedColorViewHeight), color: self.color) - // Add selectedColorView as a subview of this view - self.addSubview(selectedColorView) + if self.isSelectedColorView{ + // Init SelectedColorView subview + let selectedColorView = SelectedColorView(frame: CGRect(x: centeredX, y:0, width: colorWheelSize, height: selectedColorViewHeight), color: self.color) + // Add selectedColorView as a subview of this view + self.addSubview(selectedColorView) + self.selectedColorView = selectedColorView + } // Init new ColorWheel subview - colorWheel = ColorWheel(frame: CGRect(x: centeredX, y: selectedColorView.frame.maxY, width: colorWheelSize, height: colorWheelSize), color: self.color) + colorWheel = ColorWheel(frame: CGRect(x: centeredX, y: selectedColorView?.frame.maxY ?? 0, width: colorWheelSize, height: colorWheelSize), color: self.color) colorWheel.delegate = self // Add colorWheel as a subview of this view self.addSubview(colorWheel) - // Init new BrightnessView subview - brightnessView = BrightnessView(frame: CGRect(x: centeredX, y: colorWheel.frame.maxY, width: colorWheelSize, height: brightnessViewHeight), color: self.color) - brightnessView.delegate = self - // Add brightnessView as a subview of this view - self.addSubview(brightnessView) + if self.isBrightnessView{ + // Init new BrightnessView subview + let brightnessView = BrightnessView(frame: CGRect(x: centeredX, y: colorWheel.frame.maxY, width: colorWheelSize, height: brightnessViewHeight), color: self.color) + brightnessView.delegate = self + // Add brightnessView as a subview of this view + self.addSubview(brightnessView) + self.brightnessView = brightnessView + } + self.delegate?.swiftHSVColorPicker(self.color) } @@ -83,16 +93,16 @@ open class SwiftHSVColorPicker: UIView, ColorWheelDelegate, BrightnessViewDelega self.hue = hue self.saturation = saturation self.color = UIColor(hue: self.hue, saturation: self.saturation, brightness: self.brightness, alpha: 1.0) - brightnessView.setViewColor(self.color) - selectedColorView.setViewColor(self.color) + brightnessView?.setViewColor(self.color) + selectedColorView?.setViewColor(self.color) self.delegate?.swiftHSVColorPicker(self.color) } func brightnessSelected(_ brightness: CGFloat) { self.brightness = brightness self.color = UIColor(hue: self.hue, saturation: self.saturation, brightness: self.brightness, alpha: 1.0) - colorWheel.setViewBrightness(brightness) - selectedColorView.setViewColor(self.color) + colorWheel?.setViewBrightness(brightness) + selectedColorView?.setViewColor(self.color) self.delegate?.swiftHSVColorPicker(self.color) } } From a32055faa9902b773717f955be6cdd0c167b4f77 Mon Sep 17 00:00:00 2001 From: pikachu987 Date: Mon, 5 Mar 2018 20:55:10 +0900 Subject: [PATCH 3/5] Update version --- SwiftHSVColorPicker.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SwiftHSVColorPicker.podspec b/SwiftHSVColorPicker.podspec index a46288a..8dedc8c 100644 --- a/SwiftHSVColorPicker.podspec +++ b/SwiftHSVColorPicker.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'SwiftHSVColorPicker' - s.version = '1.1.0' + s.version = '1.1.2' s.summary = 'Swift HSV Color Picker' s.description = 'A HSV Color Picker for iOS including a color wheel, brightness slider and a view for the selected color.' s.homepage = 'https://github.com/johankasperi/SwiftHSVColorPicker' From 799a89a8e37e795eff846e26926fda1d861e4bfa Mon Sep 17 00:00:00 2001 From: pikachu987 Date: Mon, 5 Mar 2018 20:57:33 +0900 Subject: [PATCH 4/5] Update version --- SwiftHSVColorPicker.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SwiftHSVColorPicker.podspec b/SwiftHSVColorPicker.podspec index 8dedc8c..e50d872 100644 --- a/SwiftHSVColorPicker.podspec +++ b/SwiftHSVColorPicker.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.author = { 'Johan Kasperi' => 'johan@kasperi.se' } s.social_media_url = 'https://twitter.com/johankasperi' s.platform = :ios, '8.0' - s.source = { :git => 'https://github.com/johankasperi/SwiftHSVColorPicker.git', :tag => s.version.to_s } + s.source = { :git => 'https://github.com/pikachu987/SwiftHSVColorPicker.git', :tag => s.version.to_s } s.source_files = 'Classes', 'Source/**/*.{swift}' s.requires_arc = true end From c3759c877c492472a5ff9f0c8218a1a4bcdfac77 Mon Sep 17 00:00:00 2001 From: pikachu987 Date: Sun, 1 Jul 2018 23:36:55 +0900 Subject: [PATCH 5/5] Update --- Source/BrightnessView.swift | 19 +++++++++---------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ 2 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 SwiftHSVColorPickerExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Source/BrightnessView.swift b/Source/BrightnessView.swift index 0afd876..8b614c0 100755 --- a/Source/BrightnessView.swift +++ b/Source/BrightnessView.swift @@ -8,13 +8,13 @@ import UIKit protocol BrightnessViewDelegate: class { - func brightnessSelected(_ brightness: CGFloat) + func brightnessSelected(_ brightness: CGFloat) } class BrightnessView: UIView { - + weak var delegate: BrightnessViewDelegate? - + var colorLayer: CAGradientLayer! var point: CGPoint! @@ -40,8 +40,8 @@ class BrightnessView: UIView { } colorLayer = CAGradientLayer() colorLayer.colors = [ - UIColor.black.cgColor, - UIColor(hue: hue, saturation: saturation, brightness: 1, alpha: 1).cgColor + UIColor(hue: hue, saturation: saturation, brightness: 1, alpha: 1).cgColor, + UIColor.black.cgColor ] colorLayer.locations = [0.0, 1.0] colorLayer.startPoint = CGPoint(x: 0.0, y: 0.5) @@ -105,7 +105,7 @@ class BrightnessView: UIView { func getBrightnessFromPoint() -> CGFloat { // Get the brightness value for a given point - return point.x/self.frame.width + return 1-point.x/self.frame.width } func getPointFromColor(_ color: UIColor) -> CGPoint { @@ -115,8 +115,7 @@ class BrightnessView: UIView { if (!ok) { print("SwiftHSVColorPicker: exception ") } - - return CGPoint(x: brightness * frame.width, y: frame.height / 2) + return CGPoint(x: (1 - brightness) * frame.width, y: frame.height / 2) } func setViewColor(_ color: UIColor!) { @@ -127,8 +126,8 @@ class BrightnessView: UIView { print("SwiftHSVColorPicker: exception ") } colorLayer.colors = [ - UIColor.black.cgColor, - UIColor(hue: hue, saturation: saturation, brightness: 1, alpha: 1).cgColor + UIColor(hue: hue, saturation: saturation, brightness: 1, alpha: 1).cgColor, + UIColor.black.cgColor ] } } diff --git a/SwiftHSVColorPickerExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SwiftHSVColorPickerExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/SwiftHSVColorPickerExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + +