From cd58fc810e1f9807c748561b1f260ac8d80ab295 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 4 Aug 2022 16:30:53 -0500 Subject: [PATCH] fixed bugs in generic Signed-off-by: Matt Bruce --- VDS/Components/Label/Label.swift | 5 ++++- VDS/Components/Toggle/Toggle.swift | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index 75de64de..50dae4a6 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -17,7 +17,7 @@ open class LabelBase: UILabel, ModelHandlerable, Initable //-------------------------------------------------- // MARK: - Combine Properties //-------------------------------------------------- - @Published public var model = ModelType() + @Published public var model: ModelType private var cancellable: AnyCancellable? //-------------------------------------------------- @@ -58,6 +58,7 @@ open class LabelBase: UILabel, ModelHandlerable, Initable //-------------------------------------------------- required public convenience init() { self.init(frame: .zero) + self.model = ModelType() } public required convenience init(with model: ModelType) { @@ -67,11 +68,13 @@ open class LabelBase: UILabel, ModelHandlerable, Initable } public override init(frame: CGRect) { + self.model = ModelType() super.init(frame: frame) setup() } required public init?(coder: NSCoder) { + self.model = ModelType() super.init(coder: coder) setup() } diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index 0627b17a..0f874154 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -29,7 +29,7 @@ open class ToggleBase: Control, Changable { let stackView = UIStackView() stackView.translatesAutoresizingMaskIntoConstraints = false stackView.axis = .horizontal - stackView.distribution = .fillProportionally + stackView.distribution = .fill return stackView }() @@ -247,15 +247,19 @@ open class ToggleBase: Control, Changable { // MARK: - Labels //-------------------------------------------------- private func updateLabel(_ viewModel: ModelType) { - stackView.spacing = viewModel.showText ? 12 : 0 + let showText = viewModel.showText + stackView.spacing = showText ? 12 : 0 + + if stackView.subviews.contains(label) { + label.removeFromSuperview() + } + if showText { if textPosition == .left { stackView.insertArrangedSubview(label, at: 0) } else { stackView.addArrangedSubview(label) } - } else if stackView.subviews.contains(label) { - label.removeFromSuperview() } }