From 6e01b697c3093b30c4b316eb6bb874a9d7cc646e Mon Sep 17 00:00:00 2001 From: Krishna Kishore Bandaru Date: Fri, 1 Mar 2024 17:17:56 +0530 Subject: [PATCH] added isBold, height, text position options --- .../TileletViewController.swift | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/VDSSample/ViewControllers/TileletViewController.swift b/VDSSample/ViewControllers/TileletViewController.swift index cf70cf0..e8453a5 100644 --- a/VDSSample/ViewControllers/TileletViewController.swift +++ b/VDSSample/ViewControllers/TileletViewController.swift @@ -31,6 +31,12 @@ class TileletViewController: BaseViewController { items: [.primary, .secondary]) }() + lazy var textPositionPickerSelectorView = { + PickerSelectorView(title: "", + picker: self.picker, + items: Tilelet.TextPosition.allCases.sorted{ $0.rawValue < $1.rawValue }) + }() + var clickableSwitch = Toggle() var titleTextField = TextField() @@ -43,7 +49,8 @@ class TileletViewController: BaseViewController { var showDescriptionIconSwitch = Toggle() var showDirectionalIconSwitch = Toggle() var badgeTextField = TextField() - + var titleIsBold = Toggle().with { $0.isOn = true } + override func viewDidLoad() { super.viewDidLoad() addContentTopView(view: .makeWrapper(for: component)) @@ -62,12 +69,14 @@ class TileletViewController: BaseViewController { addFormRow(label: "Other Style", view: otherStandardStylePickerSelectorView) addFormRow(label: "Title Text", view: titleTextField) + addFormRow(label: "Title is Bold", view: titleIsBold) addFormRow(label: "Subtitle Color", view: subtitleColorPickerSelectorView) addFormRow(label: "Subtitle Text", view: subTitleTextField) addFormRow(label: "Width", view: widthTextField) - //addFormRow(label: "Height", view: heightTextField) + addFormRow(label: "Height", view: heightTextField) addFormRow(label: "Text Width", view: textWidthTextField) addFormRow(label: "Text Percentage", view: textPercentageTextField) + addFormRow(label: "Text Position(Minimum height is configurable.)", view: textPositionPickerSelectorView) addFormRow(label: "Badge Text", view: badgeTextField) addFormRow(label: "Description Icon", view: showDescriptionIconSwitch) addFormRow(label: "Directional Icon", view: showDirectionalIconSwitch) @@ -84,13 +93,21 @@ class TileletViewController: BaseViewController { heightTextField .numberPublisher .sink { [weak self] number in - self?.component.height = number?.cgFloatValue + guard let self else { return } + if let value = number?.cgFloatValue, value >= 100 && value < self.view.frame.height * 0.65 { + self.component.height = value + self.component.layoutIfNeeded() + } }.store(in: &subscribers) widthTextField .numberPublisher .sink { [weak self] number in - self?.component.width = number?.cgFloatValue + guard let self else { return } + if let value = number?.cgFloatValue, value >= 100 && value < self.view.frame.width * 0.85 { + self.component.width = value + self.component.layoutIfNeeded() + } }.store(in: &subscribers) textWidthTextField @@ -150,7 +167,10 @@ class TileletViewController: BaseViewController { self?.component.directionalIconModel = nil } } - + titleIsBold.publisher(for: .valueChanged).sink { [weak self] toggle in + self?.component.padding = .padding6X + self?.setTitleModel() + }.store(in: &subscribers) } func setupModel() { @@ -169,9 +189,8 @@ class TileletViewController: BaseViewController { titleTextField.text = titleModel.text subTitleTextField.text = subTitleModel.text widthTextField.text = component.width != nil ? "\(component.width!)" : "" - + textPositionPickerSelectorView.text = component.textPostion.rawValue self.updateOtherTextStyles() - } //sub models @@ -185,7 +204,7 @@ class TileletViewController: BaseViewController { func setTitleModel() { if let text = titleTextField.text, !text.isEmpty { - component.titleModel = Tilelet.TitleModel(text: text, standardStyle: titleStandardStylePickerSelectorView.selectedItem) + component.titleModel = Tilelet.TitleModel(text: text, isBold: titleIsBold.isOn, standardStyle: titleStandardStylePickerSelectorView.selectedItem) } else { component.titleModel = nil } @@ -227,6 +246,11 @@ class TileletViewController: BaseViewController { subtitleColorPickerSelectorView.onPickerDidSelect = { [weak self] item in self?.setSubTitleModel() } + + textPositionPickerSelectorView.onPickerDidSelect = { [weak self] item in + guard let self else { return } + self.component.textPostion = item + } } }