From 5e1dbd15980f19c7b4412fbb14a20ac07e90db05 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 30 Sep 2022 09:49:31 -0500 Subject: [PATCH] refactored more of the surface Signed-off-by: Matt Bruce --- VDSSample/Protocols/PickerBase.swift | 30 +++++++++---------- .../ViewControllers/BadgeViewController.swift | 4 --- .../ButtonViewController.swift | 4 --- .../CheckBoxGroupViewController.swift | 4 --- .../CheckboxViewController.swift | 4 --- .../ViewControllers/LabelViewController.swift | 4 --- .../ModelScrollViewController.swift | 4 +++ .../RadioBoxGroupViewController.swift | 4 --- .../RadioButtonViewController.swift | 4 --- .../RadioSwatchGroupViewController.swift | 4 --- .../ToggleViewController.swift | 4 --- 11 files changed, 19 insertions(+), 51 deletions(-) diff --git a/VDSSample/Protocols/PickerBase.swift b/VDSSample/Protocols/PickerBase.swift index 7ee86f8..09b71dd 100644 --- a/VDSSample/Protocols/PickerBase.swift +++ b/VDSSample/Protocols/PickerBase.swift @@ -25,13 +25,13 @@ public struct PickerType : RawRepresentable, Equatable, Hashable { public static var fontCategory = PickerType(rawValue: "fontCategory") } -protocol PickerViewable: UIPickerViewDataSource, UIPickerViewDelegate, Hashable { +public protocol PickerViewable: UIPickerViewDataSource, UIPickerViewDelegate, Hashable { associatedtype EnumType: RawRepresentable var items: [EnumType] { get set } var onPickerDidSelect: ((EnumType) -> Void)? { get set } } -class PickerSelectorView: UIStackView, PickerViewable { +public class PickerSelectorView: UIStackView, PickerViewable { private weak var picker: UIPickerView? fileprivate var selectedIndex = 0 private var subscribers = Set() @@ -41,17 +41,17 @@ class PickerSelectorView: UIStackView, PickerViewabl instance.setTitle("Select", for: .normal) } - var text: String = "" { + public var text: String = "" { didSet { label.text = text } } - var items: [EnumType] { + public var items: [EnumType] { didSet { selectedIndex = 0 } } - var onPickerDidSelect: ((EnumType) -> Void)? + public var onPickerDidSelect: ((EnumType) -> Void)? - init(title: String, picker: UIPickerView? = nil, items: [EnumType]) { + public init(title: String, picker: UIPickerView? = nil, items: [EnumType]) { self.picker = picker self.items = items super.init(frame: .zero) @@ -73,24 +73,24 @@ class PickerSelectorView: UIStackView, PickerViewabl }.store(in: &subscribers) } - required init(coder: NSCoder) { + public required init(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } - func numberOfComponents(in pickerView: UIPickerView) -> Int { + public func numberOfComponents(in pickerView: UIPickerView) -> Int { 1 } - func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { + public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { items.count + 1 } - func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int ) -> String? { + public func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int ) -> String? { guard row > 0, let item = items[row-1].rawValue as? String else { return "" } return item } - func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { + public func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { guard row - 1 >= 0 else { return } selectedIndex = row onPickerDidSelect?(items[row-1]) @@ -98,7 +98,7 @@ class PickerSelectorView: UIStackView, PickerViewabl } } -class SurfacePickerSelectorView: PickerSelectorView{ +public class SurfacePickerSelectorView: PickerSelectorView{ init(picker: UIPickerView? = nil){ super.init(title: "light", picker: picker, items: [.light, .dark]) } @@ -108,7 +108,7 @@ class SurfacePickerSelectorView: PickerSelectorView{ } } -class TextPositionPickerSelectorView: PickerSelectorView{ +public class TextPositionPickerSelectorView: PickerSelectorView{ init(picker: UIPickerView? = nil){ super.init(title: "left", picker: picker, items: [.left, .right]) } @@ -118,7 +118,7 @@ class TextPositionPickerSelectorView: PickerSelectorView{ } } -class TextSizePickerSelectorView: PickerSelectorView{ +public class TextSizePickerSelectorView: PickerSelectorView{ init(title: String, picker: UIPickerView? = nil){ super.init(title: title, picker: picker, items: [.small, .large]) } @@ -128,7 +128,7 @@ class TextSizePickerSelectorView: PickerSelectorView{ +public class FontCategoryPickerSelectorView: PickerSelectorView{ init(title: String, picker: UIPickerView? = nil){ super.init(title: title, picker: picker, items: TypographicalStyle.FontCategory.allCases) } diff --git a/VDSSample/ViewControllers/BadgeViewController.swift b/VDSSample/ViewControllers/BadgeViewController.swift index 3ae4084..89c5449 100644 --- a/VDSSample/ViewControllers/BadgeViewController.swift +++ b/VDSSample/ViewControllers/BadgeViewController.swift @@ -49,10 +49,6 @@ class BadgeViewController: ModelScrollViewController { items: NumberOfLines.allCases) }() - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - var textField = TextField() var maxWidthTextField = TextField() var badge = Badge() diff --git a/VDSSample/ViewControllers/ButtonViewController.swift b/VDSSample/ViewControllers/ButtonViewController.swift index 6cef054..e14ed3e 100644 --- a/VDSSample/ViewControllers/ButtonViewController.swift +++ b/VDSSample/ViewControllers/ButtonViewController.swift @@ -12,10 +12,6 @@ import VDSColorTokens class ButtonViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - lazy var usePickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, diff --git a/VDSSample/ViewControllers/CheckBoxGroupViewController.swift b/VDSSample/ViewControllers/CheckBoxGroupViewController.swift index bbd2382..2419475 100644 --- a/VDSSample/ViewControllers/CheckBoxGroupViewController.swift +++ b/VDSSample/ViewControllers/CheckBoxGroupViewController.swift @@ -13,10 +13,6 @@ import Combine class CheckboxGroupViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - var disabledSwitch = UISwitch() var labelTextField = TextField() var childTextField = TextField() diff --git a/VDSSample/ViewControllers/CheckboxViewController.swift b/VDSSample/ViewControllers/CheckboxViewController.swift index c680d4d..4e5fb01 100644 --- a/VDSSample/ViewControllers/CheckboxViewController.swift +++ b/VDSSample/ViewControllers/CheckboxViewController.swift @@ -13,10 +13,6 @@ import Combine class CheckboxViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - var disabledSwitch = UISwitch() var labelTextField = TextField() var childTextField = TextField() diff --git a/VDSSample/ViewControllers/LabelViewController.swift b/VDSSample/ViewControllers/LabelViewController.swift index b5b3499..ef9e85a 100644 --- a/VDSSample/ViewControllers/LabelViewController.swift +++ b/VDSSample/ViewControllers/LabelViewController.swift @@ -12,10 +12,6 @@ import VDSColorTokens class LabelViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - lazy var textSizePickerSelectorView = { TextSizePickerSelectorView(title: "", picker: self.picker) diff --git a/VDSSample/ViewControllers/ModelScrollViewController.swift b/VDSSample/ViewControllers/ModelScrollViewController.swift index a1cd1f4..376b885 100644 --- a/VDSSample/ViewControllers/ModelScrollViewController.swift +++ b/VDSSample/ViewControllers/ModelScrollViewController.swift @@ -74,6 +74,10 @@ public class ModelScrollViewController: UIViewController, } } + public lazy var surfacePickerSelectorView = { + SurfacePickerSelectorView(picker: self.picker) + }() + public var picker: UIPickerView = { return UIPickerView().with { $0.translatesAutoresizingMaskIntoConstraints = false diff --git a/VDSSample/ViewControllers/RadioBoxGroupViewController.swift b/VDSSample/ViewControllers/RadioBoxGroupViewController.swift index e5b6960..dce7b7a 100644 --- a/VDSSample/ViewControllers/RadioBoxGroupViewController.swift +++ b/VDSSample/ViewControllers/RadioBoxGroupViewController.swift @@ -13,10 +13,6 @@ import Combine class RadioBoxGroupViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - var disabledSwitch = UISwitch() var strikeThroughSwitch = UISwitch() var textField = TextField() diff --git a/VDSSample/ViewControllers/RadioButtonViewController.swift b/VDSSample/ViewControllers/RadioButtonViewController.swift index ee0b048..edf0a5f 100644 --- a/VDSSample/ViewControllers/RadioButtonViewController.swift +++ b/VDSSample/ViewControllers/RadioButtonViewController.swift @@ -13,10 +13,6 @@ import Combine class RadioButtonViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - var disabledSwitch = UISwitch() var labelTextField = TextField() var childTextField = TextField() diff --git a/VDSSample/ViewControllers/RadioSwatchGroupViewController.swift b/VDSSample/ViewControllers/RadioSwatchGroupViewController.swift index b596059..84a4ed9 100644 --- a/VDSSample/ViewControllers/RadioSwatchGroupViewController.swift +++ b/VDSSample/ViewControllers/RadioSwatchGroupViewController.swift @@ -13,10 +13,6 @@ import Combine class RadioSwatchGroupViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - var disabledSwitch = UISwitch() var strikeThroughSwitch = UISwitch() var radioSwatchGroup = RadioSwatchGroup() diff --git a/VDSSample/ViewControllers/ToggleViewController.swift b/VDSSample/ViewControllers/ToggleViewController.swift index 2e7c1c6..fb3e768 100644 --- a/VDSSample/ViewControllers/ToggleViewController.swift +++ b/VDSSample/ViewControllers/ToggleViewController.swift @@ -12,10 +12,6 @@ import VDSColorTokens class ToggleViewController: ModelScrollViewController { - lazy var surfacePickerSelectorView = { - SurfacePickerSelectorView(picker: self.picker) - }() - lazy var textSizePickerSelectorView = { TextSizePickerSelectorView(title: "Small", picker: self.picker)