From 356062246b85b246edd3499d99724ce481d5d748 Mon Sep 17 00:00:00 2001 From: Chris Chen Date: Tue, 12 Sep 2017 19:52:16 +1000 Subject: [PATCH 1/4] optional delegate method didDeselectItemAt isn't called when same color is deselcted --- Example/IGColorPicker/SquareColorViewController.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Example/IGColorPicker/SquareColorViewController.swift b/Example/IGColorPicker/SquareColorViewController.swift index fb1d28e..b54df56 100644 --- a/Example/IGColorPicker/SquareColorViewController.swift +++ b/Example/IGColorPicker/SquareColorViewController.swift @@ -24,7 +24,7 @@ class SquareColorPickerViewController: UIViewController, ColorPickerViewDelegate // Setup color picker colorPickerView.delegate = self colorPickerView.layoutDelegate = self - colorPickerView.isSelectedColorTappable = false + colorPickerView.isSelectedColorTappable = true colorPickerView.style = .square colorPickerView.selectionStyle = .check colorPickerView.backgroundColor = .clear @@ -38,9 +38,14 @@ class SquareColorPickerViewController: UIViewController, ColorPickerViewDelegate // MARK: - ColorPickerViewDelegate func colorPickerView(_ colorPickerView: ColorPickerView, didSelectItemAt indexPath: IndexPath) { + print("select index \(indexPath.item)") + self.view.backgroundColor = colorPickerView.colors[indexPath.item] } + func colorPickerView(_ colorPickerView: ColorPickerView, didDeselectItemAt indexPath: IndexPath) { + print("deselect index \(indexPath.item)") + } // MARK: - ColorPickerViewDelegateFlowLayout From 9f425c65edcc11f459e257f70509364f9e6add4a Mon Sep 17 00:00:00 2001 From: Chris Chen Date: Thu, 14 Sep 2017 14:41:35 +1000 Subject: [PATCH 2/4] fix issue: optional delegate method didDeselectItemAt isn't called when same color is deselcted --- IGColorPicker/Classes/View/ColorPickerView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/IGColorPicker/Classes/View/ColorPickerView.swift b/IGColorPicker/Classes/View/ColorPickerView.swift index 249ae59..a202770 100644 --- a/IGColorPicker/Classes/View/ColorPickerView.swift +++ b/IGColorPicker/Classes/View/ColorPickerView.swift @@ -129,6 +129,7 @@ open class ColorPickerView: UIView, UICollectionViewDelegate, UICollectionViewDa if isSelectedColorTappable { _indexOfSelectedColor = nil colorPickerCell.checkbox.setCheckState(.unchecked, animated: animated) + delegate?.colorPickerView?(self, didDeselectItemAt: indexPath) } return } From af190320ef2274b1cc42d77a28c81e110ccbbe4e Mon Sep 17 00:00:00 2001 From: Chris Chen Date: Fri, 15 Sep 2017 17:03:06 +1000 Subject: [PATCH 3/4] support deselect picker --- IGColorPicker/Classes/View/ColorPickerView.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/IGColorPicker/Classes/View/ColorPickerView.swift b/IGColorPicker/Classes/View/ColorPickerView.swift index a202770..42d2ac5 100644 --- a/IGColorPicker/Classes/View/ColorPickerView.swift +++ b/IGColorPicker/Classes/View/ColorPickerView.swift @@ -57,6 +57,11 @@ open class ColorPickerView: UIView, UICollectionViewDelegate, UICollectionViewDa if let index = preselectedIndex { guard index >= 0, colors.indices.contains(index) else { + if _indexOfSelectedColor != nil { + _indexOfSelectedColor = nil + collectionView.reloadData() + } + print("ERROR ColorPickerView - preselectedItem out of colors range") return } From fb26881dad3ebdad51ec4ed03759835867e7cace Mon Sep 17 00:00:00 2001 From: Chris Chen Date: Fri, 6 Oct 2017 13:38:07 +1100 Subject: [PATCH 4/4] udpate M13Checkbox dependency version --- IGColorPicker.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IGColorPicker.podspec b/IGColorPicker.podspec index cc1a0fa..d553961 100644 --- a/IGColorPicker.podspec +++ b/IGColorPicker.podspec @@ -16,5 +16,5 @@ s.ios.deployment_target = '8.0' s.source_files = 'IGColorPicker/Classes/**/*' -s.dependency 'M13Checkbox', '~> 2.2.0' +s.dependency 'M13Checkbox', '~> 3.2.1' end