updated button group samples
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
dc726ecb25
commit
bac5c67ba3
@ -64,22 +64,39 @@ class ButtonGroupViewController: BaseViewController {
|
|||||||
var widthTextField = TextField()
|
var widthTextField = TextField()
|
||||||
var percentageTextField = TextField()
|
var percentageTextField = TextField()
|
||||||
|
|
||||||
let buttonGroup = ButtonGroup()
|
let largeButtonGroup = ButtonGroup()
|
||||||
|
let smallButtonGroup = ButtonGroup()
|
||||||
|
let largeLabel = Label().with{ $0.text = "Large Button Group"; $0.typograpicalStyle = .BoldTitleSmall }
|
||||||
|
let smallLabel = Label().with{ $0.text = "Small Button Group"; $0.typograpicalStyle = .BoldTitleSmall }
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
buttonGroup.buttons = [
|
|
||||||
|
let stackView = UIStackView(arrangedSubviews: [largeLabel, largeButtonGroup, smallLabel, smallButtonGroup])
|
||||||
|
stackView.setCustomSpacing(50, after: largeButtonGroup)
|
||||||
|
stackView.axis = .vertical
|
||||||
|
stackView.spacing = 30
|
||||||
|
|
||||||
|
largeButtonGroup.buttons = [
|
||||||
makeButton("Secondary", label: label).with{ $0.use = .secondary },
|
makeButton("Secondary", label: label).with{ $0.use = .secondary },
|
||||||
makeButton("Primary", label: label),
|
makeButton("Primary", label: label),
|
||||||
makeTextLink("Large Text Link", label: label),
|
makeTextLink("Large Text Link", label: label),
|
||||||
makeButton("Widge Label Button", label: label),
|
makeButton("Widge Label Button", label: label),
|
||||||
makeTextLinkCaret("Text Link Caret", label: label),
|
makeTextLinkCaret("Text Link Caret", label: label),
|
||||||
makeTextLink("Small Text Link", label: label).with{ $0.size = .small },
|
|
||||||
makeButton("Small Button", label: label).with{$0.size = .small; $0.use = .secondary }
|
|
||||||
]
|
]
|
||||||
|
|
||||||
addContentTopView(view: buttonGroup)
|
smallButtonGroup.buttons = [
|
||||||
|
makeTextLink("Small Text Link", label: label).with{ $0.size = .small },
|
||||||
|
makeButton("Small Button", label: label).with{$0.size = .small; $0.use = .secondary },
|
||||||
|
makeTextLink("Text Link 1", label: label).with{ $0.size = .small },
|
||||||
|
makeTextLink("Text Link 2", label: label).with{ $0.size = .small },
|
||||||
|
makeButton("Small Button 2", label: label).with{$0.size = .small; $0.use = .secondary }
|
||||||
|
]
|
||||||
|
|
||||||
|
addContentTopView(view: stackView)
|
||||||
percentageTextField.isEnabled = false
|
percentageTextField.isEnabled = false
|
||||||
|
percentageTextField.placeholder = "Active RowQty != none"
|
||||||
|
widthTextField.placeholder = "Active RowQty == none"
|
||||||
setupForm()
|
setupForm()
|
||||||
setupPicker()
|
setupPicker()
|
||||||
setupModel()
|
setupModel()
|
||||||
@ -99,29 +116,35 @@ class ButtonGroupViewController: BaseViewController {
|
|||||||
disabledSwitch
|
disabledSwitch
|
||||||
.publisher(for: .valueChanged)
|
.publisher(for: .valueChanged)
|
||||||
.sink { [weak self] sender in
|
.sink { [weak self] sender in
|
||||||
self?.buttonGroup.disabled = sender.isOn
|
self?.largeLabel.disabled = sender.isOn
|
||||||
|
self?.smallLabel.disabled = sender.isOn
|
||||||
|
self?.largeButtonGroup.disabled = sender.isOn
|
||||||
|
self?.smallButtonGroup.disabled = sender.isOn
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
widthTextField
|
widthTextField
|
||||||
.textPublisher
|
.textPublisher
|
||||||
.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?.largeButtonGroup.buttonWidth = CGFloat(truncating: n)
|
||||||
|
self?.smallButtonGroup.buttonWidth = CGFloat(truncating: n)
|
||||||
self?.percentageTextField.text = ""
|
self?.percentageTextField.text = ""
|
||||||
} else {
|
} else {
|
||||||
self?.buttonGroup.buttonWidth = nil
|
self?.largeButtonGroup.buttonWidth = nil
|
||||||
}
|
}
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
percentageTextField
|
percentageTextField
|
||||||
.textPublisher
|
.textPublisher
|
||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
let rowQty = self?.buttonGroup.rowQuantity ?? 0
|
let rowQty = self?.largeButtonGroup.rowQuantity ?? 0
|
||||||
if let n = NumberFormatter().number(from: text), n.intValue <= 100, rowQty > 0 {
|
if let n = NumberFormatter().number(from: text), n.intValue <= 100, rowQty > 0 {
|
||||||
self?.buttonGroup.buttonPercentage = CGFloat(truncating: n)
|
self?.largeButtonGroup.buttonPercentage = CGFloat(truncating: n)
|
||||||
|
self?.smallButtonGroup.buttonPercentage = CGFloat(truncating: n)
|
||||||
self?.widthTextField.text = ""
|
self?.widthTextField.text = ""
|
||||||
} else {
|
} else {
|
||||||
self?.buttonGroup.buttonPercentage = nil
|
self?.largeButtonGroup.buttonPercentage = nil
|
||||||
|
self?.smallButtonGroup.buttonPercentage = nil
|
||||||
}
|
}
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
@ -129,32 +152,46 @@ class ButtonGroupViewController: BaseViewController {
|
|||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
//setup UI
|
//setup UI
|
||||||
surfacePickerSelectorView.text = buttonGroup.surface.rawValue
|
surfacePickerSelectorView.text = largeButtonGroup.surface.rawValue
|
||||||
buttonPositionSelectorView.text = buttonGroup.buttonPosition.rawValue
|
buttonPositionSelectorView.text = largeButtonGroup.buttonPosition.rawValue
|
||||||
disabledSwitch.isOn = buttonGroup.disabled
|
disabledSwitch.isOn = largeButtonGroup.disabled
|
||||||
rowQuantitySelectorView.text = RowQuantity(quantity: buttonGroup.rowQuantity).rawValue
|
rowQuantitySelectorView.text = RowQuantity(quantity: largeButtonGroup.rowQuantity).rawValue
|
||||||
widthTextField.text = ""
|
widthTextField.text = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupPicker(){
|
func setupPicker(){
|
||||||
|
|
||||||
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.buttonGroup.surface = item
|
self?.largeLabel.surface = item
|
||||||
|
self?.smallLabel.surface = item
|
||||||
|
self?.largeButtonGroup.surface = item
|
||||||
|
self?.smallButtonGroup.surface = item
|
||||||
self?.contentTopView.backgroundColor = item.color
|
self?.contentTopView.backgroundColor = item.color
|
||||||
}
|
}
|
||||||
|
|
||||||
buttonPositionSelectorView.onPickerDidSelect = { [weak self] item in
|
buttonPositionSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.buttonGroup.buttonPosition = item
|
self?.largeButtonGroup.buttonPosition = item
|
||||||
|
self?.smallButtonGroup.buttonPosition = item
|
||||||
}
|
}
|
||||||
|
|
||||||
rowQuantitySelectorView.onPickerDidSelect = { [weak self] item in
|
rowQuantitySelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.percentageTextField.isEnabled = item.intValue > 0
|
self?.percentageTextField.isEnabled = item.intValue > 0
|
||||||
self?.widthTextField.isEnabled = item.intValue == 0
|
self?.widthTextField.isEnabled = item.intValue == 0
|
||||||
|
|
||||||
if UIDevice.isIPad {
|
if item == .none {
|
||||||
self?.buttonGroup.rowQuantityTablet = item.intValue
|
self?.percentageTextField.text = ""
|
||||||
} else {
|
} else {
|
||||||
self?.buttonGroup.rowQuantityPhone = item.intValue
|
self?.widthTextField.text = ""
|
||||||
|
self?.largeButtonGroup.buttonWidth = nil
|
||||||
|
self?.smallButtonGroup.buttonWidth = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if UIDevice.isIPad {
|
||||||
|
self?.largeButtonGroup.rowQuantityTablet = item.intValue
|
||||||
|
self?.smallButtonGroup.rowQuantityTablet = item.intValue
|
||||||
|
} else {
|
||||||
|
self?.largeButtonGroup.rowQuantityPhone = item.intValue
|
||||||
|
self?.smallButtonGroup.rowQuantityPhone = item.intValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user