diff --git a/VDSSample/ViewControllers/TableViewController.swift b/VDSSample/ViewControllers/TableViewController.swift index 38c6144..72cf505 100644 --- a/VDSSample/ViewControllers/TableViewController.swift +++ b/VDSSample/ViewControllers/TableViewController.swift @@ -10,6 +10,23 @@ import VDS import UIKit import VDSCoreTokens +enum TableLineStyle: String, CaseIterable { + case none + case primary + case secondary + + func lineStyle() -> Line.Style? { + switch self { + case .primary: + return Line.Style.primary + case .secondary: + return Line.Style.secondary + case .none: + return nil + } + } +} + class TableViewController: BaseViewController { var striped = Toggle() @@ -21,11 +38,11 @@ class TableViewController: BaseViewController
{ } lazy var headerLineStylePicker = { - PickerSelectorView(title: "primary", picker: self.picker, items: Line.Style.allCases) + PickerSelectorView(title: "primary", picker: self.picker, items: TableLineStyle.allCases) }() lazy var rowLineStylePicker = { - PickerSelectorView(title: "secondary", picker: self.picker, items: Line.Style.allCases) + PickerSelectorView(title: "secondary", picker: self.picker, items: TableLineStyle.allCases) }() lazy var paddingPicker = { @@ -55,6 +72,20 @@ class TableViewController: BaseViewController
{ striped.onChange = { [weak self] sender in self?.component.striped = sender.isOn + + let headerStyle = sender.isOn ? nil : TableLineStyle(rawValue: self?.headerLineStylePicker.text ?? "") + let rowStyle = sender.isOn ? nil : TableLineStyle(rawValue: self?.rowLineStylePicker.text ?? "") + + var headers = self?.component.tableHeader ?? [TableRowModel]() + self?.updateBottomLineStyle(items:&headers, style: headerStyle?.lineStyle()) + self?.component.tableHeader = headers + + var rows = self?.component.tableRows ?? [TableRowModel]() + self?.updateBottomLineStyle(items:&rows, style: rowStyle?.lineStyle()) + self?.component.tableRows = rows + + self?.component.padding = .compact + self?.paddingPicker.text = Table.Padding.compact.rawValue } fillContainer.onChange = { [weak self] sender in @@ -82,28 +113,14 @@ class TableViewController: BaseViewController
{ headerLineStylePicker.onPickerDidSelect = { [weak self] item in var headers = self?.component.tableHeader ?? [TableRowModel]() - for currentHeaderIndex in 0.. { customColumnWidthSize.backgroundColor = enable ? UIColor.white : VDSColor.paletteGray85 } + func updateBottomLineStyle(items:inout [TableRowModel], style: Line.Style?) { + for currentRowIndex in 0..