From a00ffcc1ab80ede33724aa191d1eeb01f6aa2a8b Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Mon, 21 Nov 2022 11:19:41 -0600 Subject: [PATCH] added completed icon Signed-off-by: Matt Bruce --- .../ViewControllers/MenuViewController.swift | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index e657e68..b327996 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -8,9 +8,11 @@ import Foundation import UIKit import VDS +import VDSColorTokens struct MenuComponent { var title: String + var completed: Bool var viewController: UIViewController.Type } @@ -19,6 +21,21 @@ protocol Initable { } class MenuCell: UITableViewCell { + var completed: Bool = true { + didSet { + if completed { + statusImage.image = UIImage(systemName: "checkmark.circle") + statusImage.tintColor = VDSColor.paletteGreen34 + } else { + statusImage.image = UIImage(systemName: "xmark.circle") + statusImage.tintColor = VDSColor.paletteRed + } + } + } + + var statusImage = UIImageView().with { + $0.translatesAutoresizingMaskIntoConstraints = false + } var label = Label().with { $0.typograpicalStyle = .BodyLarge } @@ -33,8 +50,16 @@ class MenuCell: UITableViewCell { } func setup(){ + addSubview(statusImage) addSubview(label) - label.pinToSuperView(.init(top: 0, left: 16, bottom: 0, right: 0)) + statusImage.pinLeading(16) + label.pinLeading(statusImage.trailingAnchor, 10) + label.pinTop() + label.pinBottom() + label.pinTrailing() + statusImage.width(20) + statusImage.height(20) + statusImage.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true } } @@ -46,19 +71,19 @@ class MenuViewController: UITableViewController { } let items: [MenuComponent] = [ - MenuComponent(title: "Badge", viewController: BadgeViewController.self), - MenuComponent(title: "Button", viewController: ButtonViewController.self), - MenuComponent(title: "ButtonGroup", viewController: ButtonGroupViewController.self), - MenuComponent(title: "Checkbox", viewController: CheckboxViewController.self), - MenuComponent(title: "CheckboxGroup", viewController: CheckboxGroupViewController.self), - MenuComponent(title: "Label", viewController: LabelViewController.self), - MenuComponent(title: "RadioBoxGroup", viewController: RadioBoxGroupViewController.self), - MenuComponent(title: "RadioButtonGroup", viewController: RadioButtonViewController.self), - MenuComponent(title: "RadioSwatchGroup", viewController: RadioSwatchGroupViewController.self), - MenuComponent(title: "TextEntryField", viewController: TextEntryFieldViewController.self), - MenuComponent(title: "TextLink", viewController: TextLinkViewController.self), - MenuComponent(title: "TextLinkCaret", viewController: TextLinkCaretViewController.self), - MenuComponent(title: "Toggle", viewController: ToggleViewController.self) + 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: "Checkbox", completed: true, viewController: CheckboxViewController.self), + MenuComponent(title: "CheckboxGroup", completed: true, viewController: CheckboxGroupViewController.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), + MenuComponent(title: "RadioSwatchGroup", completed: true, viewController: RadioSwatchGroupViewController.self), + MenuComponent(title: "TextEntryField", completed: false, viewController: TextEntryFieldViewController.self), + MenuComponent(title: "TextLink", completed: true, viewController: TextLinkViewController.self), + MenuComponent(title: "TextLinkCaret", completed: true, viewController: TextLinkCaretViewController.self), + MenuComponent(title: "Toggle", completed: true, viewController: ToggleViewController.self) ] override func numberOfSections(in tableView: UITableView) -> Int { @@ -80,6 +105,7 @@ class MenuViewController: UITableViewController { let item = items[indexPath.row] cell.label.text = item.title + cell.completed = item.completed cell.accessoryType = .disclosureIndicator return cell }