finished up button group

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-12-13 12:12:38 -05:00
parent 1c677ac595
commit dc726ecb25
2 changed files with 22 additions and 5 deletions

View File

@ -62,6 +62,7 @@ class ButtonGroupViewController: BaseViewController {
var label = Label() var label = Label()
var disabledSwitch = Toggle() var disabledSwitch = Toggle()
var widthTextField = TextField() var widthTextField = TextField()
var percentageTextField = TextField()
let buttonGroup = ButtonGroup() let buttonGroup = ButtonGroup()
@ -78,7 +79,7 @@ class ButtonGroupViewController: BaseViewController {
] ]
addContentTopView(view: buttonGroup) addContentTopView(view: buttonGroup)
percentageTextField.isEnabled = false
setupForm() setupForm()
setupPicker() setupPicker()
setupModel() setupModel()
@ -91,9 +92,9 @@ class ButtonGroupViewController: BaseViewController {
addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Surface", view: surfacePickerSelectorView)
addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch))
addFormRow(label: "Position", view: buttonPositionSelectorView) addFormRow(label: "Position", view: buttonPositionSelectorView)
addFormRow(label: "Row Quantity", view: rowQuantitySelectorView)
addFormRow(label: "Width", view: widthTextField) addFormRow(label: "Width", view: widthTextField)
addFormRow(label: "Row Quantity", view: rowQuantitySelectorView)
addFormRow(label: "Percentage (1-100)", view: percentageTextField)
disabledSwitch disabledSwitch
.publisher(for: .valueChanged) .publisher(for: .valueChanged)
@ -106,8 +107,21 @@ class ButtonGroupViewController: BaseViewController {
.sink { [weak self] text in .sink { [weak self] text in
if let n = NumberFormatter().number(from: text) { if let n = NumberFormatter().number(from: text) {
self?.buttonGroup.buttonWidth = CGFloat(truncating: n) self?.buttonGroup.buttonWidth = CGFloat(truncating: n)
self?.percentageTextField.text = ""
} else { } else {
self?.buttonGroup.buttonWidth = 0.0 self?.buttonGroup.buttonWidth = nil
}
}.store(in: &subscribers)
percentageTextField
.textPublisher
.sink { [weak self] text in
let rowQty = self?.buttonGroup.rowQuantity ?? 0
if let n = NumberFormatter().number(from: text), n.intValue <= 100, rowQty > 0 {
self?.buttonGroup.buttonPercentage = CGFloat(truncating: n)
self?.widthTextField.text = ""
} else {
self?.buttonGroup.buttonPercentage = nil
} }
}.store(in: &subscribers) }.store(in: &subscribers)
@ -134,6 +148,9 @@ class ButtonGroupViewController: BaseViewController {
} }
rowQuantitySelectorView.onPickerDidSelect = { [weak self] item in rowQuantitySelectorView.onPickerDidSelect = { [weak self] item in
self?.percentageTextField.isEnabled = item.intValue > 0
self?.widthTextField.isEnabled = item.intValue == 0
if UIDevice.isIPad { if UIDevice.isIPad {
self?.buttonGroup.rowQuantityTablet = item.intValue self?.buttonGroup.rowQuantityTablet = item.intValue
} else { } else {

View File

@ -73,7 +73,7 @@ class MenuViewController: UITableViewController {
let items: [MenuComponent] = [ let items: [MenuComponent] = [
MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self), MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.self),
MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self), MenuComponent(title: "Button", completed: true, viewController: ButtonViewController.self),
MenuComponent(title: "ButtonGroup", completed: false, viewController: ButtonGroupViewController.self), MenuComponent(title: "ButtonGroup", completed: true, viewController: ButtonGroupViewController.self),
MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self), MenuComponent(title: "Checkbox", completed: true, viewController: CheckboxViewController.self),
MenuComponent(title: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.self), MenuComponent(title: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.self),
MenuComponent(title: "Label", completed: true, viewController: LabelViewController.self), MenuComponent(title: "Label", completed: true, viewController: LabelViewController.self),