added icons

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-01-09 15:44:43 -06:00
parent 8a709174a0
commit dd50133dc1
3 changed files with 110 additions and 0 deletions

View File

@ -59,6 +59,7 @@
EA89205128B68307006B9984 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA89205028B68307006B9984 /* TextField.swift */; };
EA978EC2291AC62200ACC883 /* VDS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA978EC1291AC62200ACC883 /* VDS.framework */; };
EA978EC3291AC62200ACC883 /* VDS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EA978EC1291AC62200ACC883 /* VDS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
EA985C01296CC21C00F2FF2E /* IconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA985C00296CC21C00F2FF2E /* IconViewController.swift */; };
EAA5EEAD28EB6924003B3210 /* TextEntryFieldViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAA5EEAC28EB6924003B3210 /* TextEntryFieldViewController.swift */; };
EAB1D2C928AAAA1D00DAE764 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2C828AAAA1D00DAE764 /* BaseViewController.swift */; };
EAB1D2D428AC409F00DAE764 /* LabelViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB1D2D328AC409F00DAE764 /* LabelViewController.swift */; };
@ -125,6 +126,7 @@
EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBoxGroupViewController.swift; sourceTree = "<group>"; };
EA89205028B68307006B9984 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = "<group>"; };
EA978EC1291AC62200ACC883 /* VDS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = VDS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
EA985C00296CC21C00F2FF2E /* IconViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IconViewController.swift; sourceTree = "<group>"; };
EAA5EEAC28EB6924003B3210 /* TextEntryFieldViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextEntryFieldViewController.swift; sourceTree = "<group>"; };
EAB1D2C828AAAA1D00DAE764 /* BaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = "<group>"; };
EAB1D2D328AC409F00DAE764 /* LabelViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelViewController.swift; sourceTree = "<group>"; };
@ -252,6 +254,7 @@
5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */,
EA89204D28B67332006B9984 /* CheckBoxGroupViewController.swift */,
EAF7F09B2899B92400B287F5 /* CheckboxViewController.swift */,
EA985C00296CC21C00F2FF2E /* IconViewController.swift */,
EAB1D2D328AC409F00DAE764 /* LabelViewController.swift */,
EA89201828B56DF5006B9984 /* RadioBoxGroupViewController.swift */,
EAF7F11928A14A0E00B287F5 /* RadioButtonViewController.swift */,
@ -433,6 +436,7 @@
EA89204E28B67332006B9984 /* CheckBoxGroupViewController.swift in Sources */,
EAA5EEAD28EB6924003B3210 /* TextEntryFieldViewController.swift in Sources */,
EA89204928B66CE2006B9984 /* KeyboardFrameChangeListening.swift in Sources */,
EA985C01296CC21C00F2FF2E /* IconViewController.swift in Sources */,
EAC9258029119FC400091998 /* TextLinkViewController.swift in Sources */,
EAB1D2D428AC409F00DAE764 /* LabelViewController.swift in Sources */,
EA89204B28B66CE2006B9984 /* ScrollViewKeyboardAvoider.swift in Sources */,

View File

@ -0,0 +1,105 @@
//
// IconViewController.swift
// VDSSample
//
// Created by Matt Bruce on 1/9/23.
//
import Foundation
import UIKit
import VDS
import Combine
class IconViewController: BaseViewController {
lazy var colorPickerSelectorView = {
PickerSelectorView(title: "",
picker: self.picker,
items: IconColor.allCases)
}()
lazy var categoryPickerSelectorView = {
PickerSelectorView(title: "",
picker: self.picker,
items: IconCategory.allCases.sorted{ $0.rawValue < $1.rawValue })
}()
lazy var namePickerSelectorView = {
PickerSelectorView<IconName>(title: "",
picker: self.picker,
items: [])
}()
lazy var sizePickerSelectorView = {
PickerSelectorView(title: "",
picker: self.picker,
items: IconSize.allCases)
}()
var icon = Icon()
override func viewDidLoad() {
super.viewDidLoad()
addContentTopView(view: .makeWrapper(for: icon))
setupForm()
setupPicker()
setupModel()
}
func setupForm(){
addFormRow(label: "Surface", view: surfacePickerSelectorView)
addFormRow(label: "Size", view: sizePickerSelectorView)
addFormRow(label: "Color", view: colorPickerSelectorView)
addFormRow(label: "Category", view: categoryPickerSelectorView)
addFormRow(label: "Name", view: namePickerSelectorView)
}
func setupModel() {
let name = IconName.accessibility
icon.color = .black
icon.name = name
//setup UI
surfacePickerSelectorView.text = icon.surface.rawValue
sizePickerSelectorView.text = icon.size.rawValue
colorPickerSelectorView.text = icon.color.rawValue
category = .accessibility
namePickerSelectorView.text = name.rawValue
}
private var category: IconCategory = .accessibility {
didSet {
categoryPickerSelectorView.text = category.rawValue
let icons = category.icons.sorted{ $0.rawValue < $1.rawValue }
namePickerSelectorView.items = icons
if let first = icons.first {
namePickerSelectorView.text = first.rawValue
icon.name = first
}
}
}
func setupPicker(){
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.icon.surface = item
self?.contentTopView.backgroundColor = item.color
}
categoryPickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.category = item
}
sizePickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.icon.size = item
}
colorPickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.icon.color = item
}
namePickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.icon.name = item
}
}
}

View File

@ -76,6 +76,7 @@ class MenuViewController: UITableViewController {
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: "Icon", completed: true, viewController: IconViewController.self),
MenuComponent(title: "Label", completed: true, viewController: LabelViewController.self),
MenuComponent(title: "RadioBoxGroup", completed: true, viewController: RadioBoxGroupViewController.self),
MenuComponent(title: "RadioButtonGroup", completed: true, viewController: RadioButtonViewController.self),