diff --git a/VDSSample/ViewControllers/ButtonGroupViewController.swift b/VDSSample/ViewControllers/ButtonGroupViewController.swift index aa0f780..b80a290 100644 --- a/VDSSample/ViewControllers/ButtonGroupViewController.swift +++ b/VDSSample/ViewControllers/ButtonGroupViewController.swift @@ -62,6 +62,7 @@ class ButtonGroupViewController: BaseViewController { var label = Label() var disabledSwitch = Toggle() var widthTextField = TextField() + var percentageTextField = TextField() let buttonGroup = ButtonGroup() @@ -78,7 +79,7 @@ class ButtonGroupViewController: BaseViewController { ] addContentTopView(view: buttonGroup) - + percentageTextField.isEnabled = false setupForm() setupPicker() setupModel() @@ -91,9 +92,9 @@ class ButtonGroupViewController: BaseViewController { addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Position", view: buttonPositionSelectorView) - addFormRow(label: "Row Quantity", view: rowQuantitySelectorView) addFormRow(label: "Width", view: widthTextField) - + addFormRow(label: "Row Quantity", view: rowQuantitySelectorView) + addFormRow(label: "Percentage (1-100)", view: percentageTextField) disabledSwitch .publisher(for: .valueChanged) @@ -106,8 +107,21 @@ class ButtonGroupViewController: BaseViewController { .sink { [weak self] text in if let n = NumberFormatter().number(from: text) { self?.buttonGroup.buttonWidth = CGFloat(truncating: n) + self?.percentageTextField.text = "" } 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) @@ -134,6 +148,9 @@ class ButtonGroupViewController: BaseViewController { } rowQuantitySelectorView.onPickerDidSelect = { [weak self] item in + self?.percentageTextField.isEnabled = item.intValue > 0 + self?.widthTextField.isEnabled = item.intValue == 0 + if UIDevice.isIPad { self?.buttonGroup.rowQuantityTablet = item.intValue } else { diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 51add23..c66f4fc 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -73,7 +73,7 @@ class MenuViewController: UITableViewController { let items: [MenuComponent] = [ MenuComponent(title: "Badge", completed: true, viewController: BadgeViewController.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: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.self), MenuComponent(title: "Label", completed: true, viewController: LabelViewController.self),