refactored picker logic
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
b760d32e4b
commit
5337f30843
@ -8,20 +8,73 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDS
|
import VDS
|
||||||
|
import Combine
|
||||||
|
|
||||||
protocol PickerViewable {
|
public struct PickerType : RawRepresentable, Equatable, Hashable {
|
||||||
|
public var rawValue: String
|
||||||
|
public init(_ rawValue: String) {
|
||||||
|
self.rawValue = rawValue
|
||||||
|
}
|
||||||
|
public init(rawValue: String) {
|
||||||
|
self.rawValue = rawValue
|
||||||
|
}
|
||||||
|
|
||||||
|
public static var surface = PickerType(rawValue: "surface")
|
||||||
|
public static var textPosition = PickerType(rawValue: "textPosition")
|
||||||
|
public static var textSize = PickerType(rawValue: "textSize")
|
||||||
|
public static var fontCategory = PickerType(rawValue: "fontCategory")
|
||||||
|
}
|
||||||
|
|
||||||
|
protocol PickerViewable: UIPickerViewDataSource, UIPickerViewDelegate, Hashable {
|
||||||
associatedtype EnumType: RawRepresentable
|
associatedtype EnumType: RawRepresentable
|
||||||
var items: [EnumType] { get set }
|
var items: [EnumType] { get set }
|
||||||
var onPickerDidSelect: ((EnumType) -> Void)? { get set }
|
var onPickerDidSelect: ((EnumType) -> Void)? { get set }
|
||||||
}
|
}
|
||||||
|
|
||||||
class PickerBase<EnumType: RawRepresentable>: NSObject, PickerViewable, UIPickerViewDataSource, UIPickerViewDelegate {
|
class PickerSelectorView<EnumType: RawRepresentable>: UIStackView, PickerViewable {
|
||||||
var items: [EnumType]
|
private weak var picker: UIPickerView?
|
||||||
|
fileprivate var selectedIndex = 0
|
||||||
|
private var subscribers = Set<AnyCancellable>()
|
||||||
|
private var label = UILabel()
|
||||||
|
private var button = UIButton(type: .system).with { instance in
|
||||||
|
instance.configuration = .filled()
|
||||||
|
instance.setTitle("Select", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
var text: String = "" {
|
||||||
|
didSet {
|
||||||
|
label.text = text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var items: [EnumType] {
|
||||||
|
didSet { selectedIndex = 0 }
|
||||||
|
}
|
||||||
var onPickerDidSelect: ((EnumType) -> Void)?
|
var onPickerDidSelect: ((EnumType) -> Void)?
|
||||||
|
|
||||||
init(items: [EnumType]) {
|
init(title: String, picker: UIPickerView? = nil, items: [EnumType]) {
|
||||||
|
self.picker = picker
|
||||||
self.items = items
|
self.items = items
|
||||||
super.init()
|
super.init(frame: .zero)
|
||||||
|
|
||||||
|
self.axis = .horizontal
|
||||||
|
self.distribution = .fillEqually
|
||||||
|
self.alignment = .fill
|
||||||
|
label.text = title
|
||||||
|
addArrangedSubview(label)
|
||||||
|
addArrangedSubview(button)
|
||||||
|
button
|
||||||
|
.publisher(for: .touchUpInside)
|
||||||
|
.sink { [weak self] _ in
|
||||||
|
self?.picker?.delegate = self
|
||||||
|
self?.picker?.dataSource = self
|
||||||
|
self?.picker?.reloadAllComponents()
|
||||||
|
self?.picker?.selectRow(self?.selectedIndex ?? 0, inComponent: 0, animated: false)
|
||||||
|
self?.picker?.isHidden = false
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
}
|
||||||
|
|
||||||
|
required init(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
func numberOfComponents(in pickerView: UIPickerView) -> Int {
|
func numberOfComponents(in pickerView: UIPickerView) -> Int {
|
||||||
@ -39,32 +92,15 @@ class PickerBase<EnumType: RawRepresentable>: NSObject, PickerViewable, UIPicker
|
|||||||
|
|
||||||
func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
|
func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
|
||||||
guard row - 1 >= 0 else { return }
|
guard row - 1 >= 0 else { return }
|
||||||
|
selectedIndex = row
|
||||||
onPickerDidSelect?(items[row-1])
|
onPickerDidSelect?(items[row-1])
|
||||||
pickerView.isHidden = true
|
pickerView.isHidden = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class PickerSelectorView: UIStackView {
|
class SurfacePickerSelectorView: PickerSelectorView<Surface>{
|
||||||
private var label = UILabel()
|
init(picker: UIPickerView? = nil){
|
||||||
var button = UIButton(type: .system).with { instance in
|
super.init(title: "light", picker: picker, items: [.light, .dark])
|
||||||
instance.configuration = .filled()
|
|
||||||
instance.setTitle("Select", for: .normal)
|
|
||||||
}
|
|
||||||
|
|
||||||
var text: String = "" {
|
|
||||||
didSet {
|
|
||||||
label.text = text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
init(title: String){
|
|
||||||
super.init(frame: .zero)
|
|
||||||
self.axis = .horizontal
|
|
||||||
self.distribution = .fillEqually
|
|
||||||
self.alignment = .fill
|
|
||||||
label.text = title
|
|
||||||
addArrangedSubview(label)
|
|
||||||
addArrangedSubview(button)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
required init(coder: NSCoder) {
|
required init(coder: NSCoder) {
|
||||||
@ -72,34 +108,32 @@ class PickerSelectorView: UIStackView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SurfacePicker: PickerBase<Surface> {
|
class TextPositionPickerSelectorView: PickerSelectorView<TextPosition>{
|
||||||
init(){
|
init(picker: UIPickerView? = nil){
|
||||||
super.init(items: [.light, .dark])
|
super.init(title: "left", picker: picker, items: [.left, .right])
|
||||||
|
}
|
||||||
|
|
||||||
|
required init(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TextPositionPicker: PickerBase<TextPosition> {
|
class TextSizePickerSelectorView: PickerSelectorView<TypographicalStyle.FontSize>{
|
||||||
init(){
|
init(title: String, picker: UIPickerView? = nil){
|
||||||
super.init(items: [.left, .right])
|
super.init(title: title, picker: picker, items: [.small, .large])
|
||||||
|
}
|
||||||
|
|
||||||
|
required init(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TextSizePicker: PickerBase<TypographicalStyle.FontSize> {
|
class FontCategoryPickerSelectorView: PickerSelectorView<TypographicalStyle.FontCategory>{
|
||||||
init(){
|
init(title: String, picker: UIPickerView? = nil){
|
||||||
super.init(items: [.small, .large])
|
super.init(title: title, picker: picker, items: TypographicalStyle.FontCategory.allCases)
|
||||||
|
}
|
||||||
|
|
||||||
|
required init(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FontCategoryPicker: PickerBase<TypographicalStyle.FontCategory> {
|
|
||||||
init(){
|
|
||||||
super.init(items: TypographicalStyle.FontCategory.allCases)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class UsePicker: PickerBase<Use> {
|
|
||||||
init(){
|
|
||||||
super.init(items: [.primary, .secondary])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,10 +13,6 @@ import Combine
|
|||||||
|
|
||||||
class BadgeViewController: ModelScrollViewController<DefaultBadgeModel> {
|
class BadgeViewController: ModelScrollViewController<DefaultBadgeModel> {
|
||||||
|
|
||||||
enum PickerType {
|
|
||||||
case surface, fillColor, numberOfLines
|
|
||||||
}
|
|
||||||
|
|
||||||
enum NumberOfLines: String, CaseIterable {
|
enum NumberOfLines: String, CaseIterable {
|
||||||
case unlimited
|
case unlimited
|
||||||
case one
|
case one
|
||||||
@ -41,9 +37,22 @@ class BadgeViewController: ModelScrollViewController<DefaultBadgeModel> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var fillColorPickerSelectorView = PickerSelectorView(title: "red")
|
lazy var fillColorPickerSelectorView = {
|
||||||
var numberOfLinesPickerSelectorView = PickerSelectorView(title: "one")
|
PickerSelectorView(title: "red",
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
picker: self.picker,
|
||||||
|
items: BadgeFillColor.allCases)
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var numberOfLinesPickerSelectorView = {
|
||||||
|
PickerSelectorView(title: "one",
|
||||||
|
picker: self.picker,
|
||||||
|
items: NumberOfLines.allCases)
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var surfacePickerSelectorView = {
|
||||||
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
|
}()
|
||||||
|
|
||||||
var textField = TextField()
|
var textField = TextField()
|
||||||
var maxWidthTextField = TextField()
|
var maxWidthTextField = TextField()
|
||||||
var badge = Badge()
|
var badge = Badge()
|
||||||
@ -85,25 +94,6 @@ class BadgeViewController: ModelScrollViewController<DefaultBadgeModel> {
|
|||||||
}
|
}
|
||||||
self?.badge.maxWidth = float
|
self?.badge.maxWidth = float
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
fillColorPickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .fillColor
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
numberOfLinesPickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .numberOfLines
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
@ -131,48 +121,22 @@ class BadgeViewController: ModelScrollViewController<DefaultBadgeModel> {
|
|||||||
badge.set(with: viewModel)
|
badge.set(with: viewModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
var fillColorPicker = PickerBase<BadgeFillColor>.init(items: BadgeFillColor.allCases)
|
|
||||||
var numberOfLinesPicker = PickerBase<NumberOfLines>.init(items: NumberOfLines.allCases)
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
case .fillColor:
|
|
||||||
update(object: fillColorPicker)
|
|
||||||
case .numberOfLines:
|
|
||||||
update(object: numberOfLinesPicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
|
||||||
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.badge.surface = item
|
self?.badge.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
fillColorPicker.onPickerDidSelect = { [weak self] item in
|
fillColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.badge.fillColor = item
|
self?.badge.fillColor = item
|
||||||
self?.fillColorPickerSelectorView.text = item.rawValue
|
self?.fillColorPickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
numberOfLinesPicker.onPickerDidSelect = { [weak self] item in
|
numberOfLinesPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.badge.numberOfLines = item.intValue
|
self?.badge.numberOfLines = item.intValue
|
||||||
self?.numberOfLinesPickerSelectorView.text = item.rawValue
|
self?.numberOfLinesPickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -12,12 +12,21 @@ import VDSColorTokens
|
|||||||
|
|
||||||
class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
|
class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface, use, buttonSize
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "")
|
|
||||||
var usePickerSelectorView = PickerSelectorView(title: "")
|
lazy var usePickerSelectorView = {
|
||||||
var buttonSizePickerSelectorView = PickerSelectorView(title: "")
|
PickerSelectorView<Use>(title: "",
|
||||||
|
picker: self.picker,
|
||||||
|
items: [.primary, .secondary])
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var buttonSizePickerSelectorView = {
|
||||||
|
PickerSelectorView(title: "",
|
||||||
|
picker: self.picker,
|
||||||
|
items: ButtonSize.allCases)
|
||||||
|
}()
|
||||||
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var textField = TextField()
|
var textField = TextField()
|
||||||
@ -55,18 +64,6 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
|
|||||||
self?.button.disabled = sender.isOn
|
self?.button.disabled = sender.isOn
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
usePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .use
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
textField
|
textField
|
||||||
.textPublisher
|
.textPublisher
|
||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
@ -81,12 +78,6 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
|
|||||||
}
|
}
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
buttonSizePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .buttonSize
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
@ -120,46 +111,21 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
|
|||||||
button.set(with: viewModel)
|
button.set(with: viewModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
var usePicker = UsePicker()
|
|
||||||
var buttonSizePicker = PickerBase<ButtonSize>.init(items: ButtonSize.allCases)
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
case .use:
|
|
||||||
update(object: usePicker)
|
|
||||||
case .buttonSize:
|
|
||||||
update(object: buttonSizePicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
|
||||||
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.button.surface = item
|
self?.button.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
usePicker.onPickerDidSelect = { [weak self] item in
|
usePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.button.use = item
|
self?.button.use = item
|
||||||
self?.button.backgroundColor = item.color
|
self?.button.backgroundColor = item.color
|
||||||
self?.usePickerSelectorView.text = item.rawValue
|
self?.usePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
buttonSizePicker.onPickerDidSelect = { [weak self] item in
|
buttonSizePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.button.size = item
|
self?.button.size = item
|
||||||
self?.buttonSizePickerSelectorView.text = item.rawValue
|
self?.buttonSizePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,11 +13,10 @@ import Combine
|
|||||||
|
|
||||||
class CheckboxGroupViewController: ModelScrollViewController<DefaultCheckboxGroupModel> {
|
class CheckboxGroupViewController: ModelScrollViewController<DefaultCheckboxGroupModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
|
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var labelTextField = TextField()
|
var labelTextField = TextField()
|
||||||
var childTextField = TextField()
|
var childTextField = TextField()
|
||||||
@ -65,12 +64,6 @@ class CheckboxGroupViewController: ModelScrollViewController<DefaultCheckboxGro
|
|||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
self?.checkbox?.childText = text
|
self?.checkbox?.childText = text
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
@ -126,26 +119,8 @@ class CheckboxGroupViewController: ModelScrollViewController<DefaultCheckboxGro
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.checkboxGroup.surface = item
|
self?.checkboxGroup.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
|
|||||||
@ -13,11 +13,10 @@ import Combine
|
|||||||
|
|
||||||
class CheckboxViewController: ModelScrollViewController<DefaultCheckboxModel> {
|
class CheckboxViewController: ModelScrollViewController<DefaultCheckboxModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
|
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var labelTextField = TextField()
|
var labelTextField = TextField()
|
||||||
var childTextField = TextField()
|
var childTextField = TextField()
|
||||||
@ -78,13 +77,6 @@ class CheckboxViewController: ModelScrollViewController<DefaultCheckboxModel> {
|
|||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
self?.checkbox.errorText = text
|
self?.checkbox.errorText = text
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
@ -124,26 +116,8 @@ class CheckboxViewController: ModelScrollViewController<DefaultCheckboxModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.checkbox.surface = item
|
self?.checkbox.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
|
|||||||
@ -12,12 +12,20 @@ import VDSColorTokens
|
|||||||
|
|
||||||
class LabelViewController: ModelScrollViewController<DefaultLabelModel> {
|
class LabelViewController: ModelScrollViewController<DefaultLabelModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface, textSize, fontCategory
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "")
|
|
||||||
var textSizePickerSelectorView = PickerSelectorView(title: "")
|
lazy var textSizePickerSelectorView = {
|
||||||
var fontCategoryPickerSelectorView = PickerSelectorView(title: "")
|
TextSizePickerSelectorView(title: "",
|
||||||
|
picker: self.picker)
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var fontCategoryPickerSelectorView = {
|
||||||
|
FontCategoryPickerSelectorView(title: "",
|
||||||
|
picker: self.picker)
|
||||||
|
}()
|
||||||
|
|
||||||
var boldSwitch = UISwitch()
|
var boldSwitch = UISwitch()
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var textField = TextField()
|
var textField = TextField()
|
||||||
@ -55,24 +63,6 @@ class LabelViewController: ModelScrollViewController<DefaultLabelModel> {
|
|||||||
self?.updateLabelStyle()
|
self?.updateLabelStyle()
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
fontCategoryPickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .fontCategory
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
textSizePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .textSize
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
textField
|
textField
|
||||||
.textPublisher
|
.textPublisher
|
||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
@ -110,37 +100,12 @@ class LabelViewController: ModelScrollViewController<DefaultLabelModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
var textSizePicker = TextSizePicker()
|
|
||||||
var fontCategoryPicker = FontCategoryPicker()
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
case .textSize:
|
|
||||||
update(object: textSizePicker)
|
|
||||||
case .fontCategory:
|
|
||||||
update(object: fontCategoryPicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private var fontCategory: TypographicalStyle.FontCategory = .feature {
|
private var fontCategory: TypographicalStyle.FontCategory = .feature {
|
||||||
didSet {
|
didSet {
|
||||||
fontCategoryPickerSelectorView.text = fontCategory.rawValue
|
fontCategoryPickerSelectorView.text = fontCategory.rawValue
|
||||||
textSizePicker.items = fontCategory.sizes
|
textSizePickerSelectorView.items = fontCategory.sizes
|
||||||
if textSizePicker.items.count > 0 {
|
if textSizePickerSelectorView.items.count > 0 {
|
||||||
textSize = textSizePicker.items[0]
|
textSize = textSizePickerSelectorView.items[0]
|
||||||
} else {
|
} else {
|
||||||
textSize = nil
|
textSize = nil
|
||||||
}
|
}
|
||||||
@ -163,17 +128,17 @@ class LabelViewController: ModelScrollViewController<DefaultLabelModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.label.surface = item
|
self?.label.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
textSizePicker.onPickerDidSelect = { [weak self] item in
|
textSizePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.textSize = item
|
self?.textSize = item
|
||||||
}
|
}
|
||||||
|
|
||||||
fontCategoryPicker.onPickerDidSelect = { [weak self] item in
|
fontCategoryPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.fontCategory = item
|
self?.fontCategory = item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,13 +13,12 @@ import Combine
|
|||||||
|
|
||||||
class RadioBoxGroupViewController: ModelScrollViewController<DefaultRadioBoxGroupModel> {
|
class RadioBoxGroupViewController: ModelScrollViewController<DefaultRadioBoxGroupModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var strikeThroughSwitch = UISwitch()
|
var strikeThroughSwitch = UISwitch()
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
|
||||||
var textField = TextField()
|
var textField = TextField()
|
||||||
var subTextField = TextField()
|
var subTextField = TextField()
|
||||||
var subTextRightField = TextField()
|
var subTextRightField = TextField()
|
||||||
@ -73,12 +72,6 @@ class RadioBoxGroupViewController: ModelScrollViewController<DefaultRadioBoxGro
|
|||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
self?.radioBox?.subTextRight = text
|
self?.radioBox?.subTextRight = text
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel(){
|
func setupModel(){
|
||||||
@ -136,30 +129,13 @@ class RadioBoxGroupViewController: ModelScrollViewController<DefaultRadioBoxGro
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
|
||||||
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.radioBoxGroup.surface = item
|
self?.radioBoxGroup.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,10 +13,10 @@ import Combine
|
|||||||
|
|
||||||
class RadioButtonViewController: ModelScrollViewController<DefaultRadioButtonGroupModel> {
|
class RadioButtonViewController: ModelScrollViewController<DefaultRadioButtonGroupModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var labelTextField = TextField()
|
var labelTextField = TextField()
|
||||||
var childTextField = TextField()
|
var childTextField = TextField()
|
||||||
@ -64,11 +64,6 @@ class RadioButtonViewController: ModelScrollViewController<DefaultRadioButtonGr
|
|||||||
self?.radioButton?.childText = text
|
self?.radioButton?.childText = text
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel(){
|
func setupModel(){
|
||||||
@ -129,31 +124,14 @@ class RadioButtonViewController: ModelScrollViewController<DefaultRadioButtonGr
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
|
|
||||||
picker.isHidden = true
|
picker.isHidden = true
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.radioButtonGroup.surface = item
|
self?.radioButtonGroup.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,14 +13,12 @@ import Combine
|
|||||||
|
|
||||||
class RadioSwatchGroupViewController: ModelScrollViewController<DefaultRadioSwatchGroupModel> {
|
class RadioSwatchGroupViewController: ModelScrollViewController<DefaultRadioSwatchGroupModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var strikeThroughSwitch = UISwitch()
|
var strikeThroughSwitch = UISwitch()
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
|
||||||
|
|
||||||
var radioSwatchGroup = RadioSwatchGroup()
|
var radioSwatchGroup = RadioSwatchGroup()
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
@ -58,12 +56,6 @@ class RadioSwatchGroupViewController: ModelScrollViewController<DefaultRadioSwa
|
|||||||
self?.model.selectors = selectors
|
self?.model.selectors = selectors
|
||||||
}
|
}
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel(){
|
func setupModel(){
|
||||||
@ -141,30 +133,13 @@ class RadioSwatchGroupViewController: ModelScrollViewController<DefaultRadioSwa
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
|
||||||
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.radioSwatchGroup.surface = item
|
self?.radioSwatchGroup.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,11 +12,19 @@ import VDSColorTokens
|
|||||||
|
|
||||||
class ToggleViewController: ModelScrollViewController<DefaultToggleModel> {
|
class ToggleViewController: ModelScrollViewController<DefaultToggleModel> {
|
||||||
|
|
||||||
enum PickerType {
|
lazy var surfacePickerSelectorView = {
|
||||||
case surface, textSize, textPosition
|
SurfacePickerSelectorView(picker: self.picker)
|
||||||
}
|
}()
|
||||||
|
|
||||||
|
lazy var textSizePickerSelectorView = {
|
||||||
|
TextSizePickerSelectorView(title: "Small",
|
||||||
|
picker: self.picker)
|
||||||
|
}()
|
||||||
|
|
||||||
|
lazy var textPositionPickerSelectorView = {
|
||||||
|
TextPositionPickerSelectorView(picker: self.picker)
|
||||||
|
}()
|
||||||
|
|
||||||
var surfacePickerSelectorView = PickerSelectorView(title: "light")
|
|
||||||
var disabledSwitch = UISwitch()
|
var disabledSwitch = UISwitch()
|
||||||
var showTextSwitch = UISwitch()
|
var showTextSwitch = UISwitch()
|
||||||
|
|
||||||
@ -31,8 +39,6 @@ class ToggleViewController: ModelScrollViewController<DefaultToggleModel> {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
var boldSwitch = UISwitch()
|
var boldSwitch = UISwitch()
|
||||||
var textSizePickerSelectorView = PickerSelectorView(title: "Large")
|
|
||||||
var textPositionPickerSelectorView = PickerSelectorView(title: "left")
|
|
||||||
var onTextField = TextField()
|
var onTextField = TextField()
|
||||||
var offTextField = TextField()
|
var offTextField = TextField()
|
||||||
|
|
||||||
@ -72,24 +78,6 @@ class ToggleViewController: ModelScrollViewController<DefaultToggleModel> {
|
|||||||
self?.textFormStackView.isHidden = !sender.isOn
|
self?.textFormStackView.isHidden = !sender.isOn
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
surfacePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .surface
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
textSizePickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .textSize
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
textPositionPickerSelectorView.button
|
|
||||||
.publisher(for: .touchUpInside)
|
|
||||||
.sink { [weak self] _ in
|
|
||||||
self?.pickerType = .textPosition
|
|
||||||
}.store(in: &subscribers)
|
|
||||||
|
|
||||||
disabledSwitch
|
disabledSwitch
|
||||||
.publisher(for: .valueChanged)
|
.publisher(for: .valueChanged)
|
||||||
.sink { [weak self] sender in
|
.sink { [weak self] sender in
|
||||||
@ -123,47 +111,24 @@ class ToggleViewController: ModelScrollViewController<DefaultToggleModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Picker
|
//Picker
|
||||||
var surfacePicker = SurfacePicker()
|
|
||||||
var textSizePicker = TextSizePicker()
|
|
||||||
var textPositionPicker = TextPositionPicker()
|
|
||||||
|
|
||||||
var pickerType: PickerType = .surface {
|
|
||||||
didSet {
|
|
||||||
func update(object: UIPickerViewDelegate & UIPickerViewDataSource){
|
|
||||||
picker.delegate = object
|
|
||||||
picker.dataSource = object
|
|
||||||
}
|
|
||||||
|
|
||||||
switch pickerType{
|
|
||||||
case .surface:
|
|
||||||
update(object: surfacePicker)
|
|
||||||
case .textSize:
|
|
||||||
update(object: textSizePicker)
|
|
||||||
case .textPosition:
|
|
||||||
update(object: textPositionPicker)
|
|
||||||
}
|
|
||||||
picker.reloadAllComponents()
|
|
||||||
picker.selectRow(0, inComponent: 0, animated: false)
|
|
||||||
picker.isHidden = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
|
|
||||||
surfacePicker.onPickerDidSelect = { [weak self] item in
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.toggle.surface = item
|
self?.toggle.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
self?.surfacePickerSelectorView.text = item.rawValue
|
self?.surfacePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
textSizePicker.onPickerDidSelect = { [weak self] item in
|
textSizePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.toggle.fontSize = item
|
self?.toggle.fontSize = item
|
||||||
self?.textSizePickerSelectorView.text = item.rawValue
|
self?.textSizePickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
textPositionPicker.onPickerDidSelect = { [weak self] item in
|
textPositionPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.toggle.textPosition = item
|
self?.toggle.textPosition = item
|
||||||
self?.textPositionPickerSelectorView.text = item.rawValue
|
self?.textPositionPickerSelectorView.text = item.rawValue
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user