vds_ios_sample/VDSSample/ViewControllers/ToggleViewController.swift
Matt Bruce 4cb2576488 renamed
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2022-08-03 13:58:11 -05:00

133 lines
4.1 KiB
Swift

//
// ToggleViewController.swift
// VDSSample
//
// Created by Matt Bruce on 8/1/22.
//
import Foundation
import UIKit
import VDS
import VDSColorTokens
class ToggleViewController: UIViewController, StoryboardInitable {
enum PickerType {
case surface, textSize, textPosition, fontWeight
}
static var storyboardId: String = "toggle"
static var storyboardName: String = "Components"
@IBOutlet weak var toggleContainerView: UIView!
@IBOutlet weak var picker: UIPickerView!
@IBOutlet weak var surfaceLabel: UILabel!
@IBOutlet weak var textSizeLabel: UILabel!
@IBOutlet weak var textPositionLabel: UILabel!
@IBOutlet weak var fontWeightLabel: UILabel!
@IBOutlet weak var showTextStack: UIStackView!
var toggle: Toggle!
override func viewDidLoad() {
super.viewDidLoad()
toggle = Toggle()
toggle.translatesAutoresizingMaskIntoConstraints = false
toggleContainerView.addSubview(toggle)
toggle.leadingAnchor.constraint(equalTo: toggleContainerView.leadingAnchor, constant: 20).isActive = true
toggle.bottomAnchor.constraint(equalTo: toggleContainerView.bottomAnchor, constant: -20).isActive = true
toggle.topAnchor.constraint(equalTo: toggleContainerView.topAnchor, constant: 20).isActive = true
showTextStack.isHidden = true
view.addGestureRecognizer(UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:))))
setupPicker()
}
@IBAction func showTextChanged(_ sender: UISwitch) {
toggle.showText = sender.isOn
showTextStack.isHidden = !sender.isOn
}
@IBAction func disabledChanged(_ sender: UISwitch) {
toggle.disabled = sender.isOn
}
@IBAction func offTextDidEnd(_ sender: UITextField) {
toggle.offText = sender.text ?? "Off"
sender.resignFirstResponder()
}
@IBAction func onTextDidEnd(_ sender: UITextField) {
toggle.onText = sender.text ?? "On"
sender.resignFirstResponder()
}
@IBAction func surfaceClick(_ sender: Any) {
pickerType = .surface
}
@IBAction func textSizeClick(_ sender: Any) {
pickerType = .textSize
}
@IBAction func textPositionClick(_ sender: Any) {
pickerType = .textPosition
}
@IBAction func fontWeightClick(_ sender: Any) {
pickerType = .fontWeight
}
//Picker
var surfacePicker = SurfacePicker()
var textSizePicker = TextSizePicker()
var textPositionPicker = TextPositionPicker()
var fontWeightPicker = FontWeightPicker()
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)
case .fontWeight:
update(object: fontWeightPicker)
}
picker.reloadAllComponents()
picker.selectRow(0, inComponent: 0, animated: false)
picker.isHidden = false
}
}
func setupPicker(){
picker.isHidden = true
surfacePicker.onPickerDidSelect = { item in
self.toggle.surface = item
self.toggleContainerView.backgroundColor = item.color
self.surfaceLabel.text = item.rawValue
}
fontWeightPicker.onPickerDidSelect = { item in
self.toggle.fontWeight = item
self.fontWeightLabel.text = item.rawValue
}
textSizePicker.onPickerDidSelect = { item in
self.toggle.fontSize = item
self.textSizeLabel.text = item.rawValue
}
textPositionPicker.onPickerDidSelect = { item in
self.toggle.textPosition = item
self.textPositionLabel.text = item.rawValue
}
}
}