From a2c3c94ef1b6a3c971052b483b0727f980eb4af5 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Mon, 5 Jun 2023 10:57:56 -0500 Subject: [PATCH] refactored radiobox, fixed bug Signed-off-by: Matt Bruce --- VDS/Components/RadioBox/RadioBox.swift | 30 +++++++------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/VDS/Components/RadioBox/RadioBox.swift b/VDS/Components/RadioBox/RadioBox.swift index f27a8809..0584079d 100644 --- a/VDS/Components/RadioBox/RadioBox.swift +++ b/VDS/Components/RadioBox/RadioBox.swift @@ -155,8 +155,6 @@ open class RadioBox: Control, Changeable { selectorStackView.addArrangedSubview(subTextRightLabel) selectorLeftLabelStackView.addArrangedSubview(textLabel) selectorLeftLabelStackView.addArrangedSubview(subTextLabel) - - updateSelector() selectorView.pinToSuperView() mainStackView.pinToSuperView(.init(top: 16, left: 16, bottom: 16, right: 16)) @@ -241,12 +239,12 @@ open class RadioBox: Control, Changeable { //-------------------------------------------------- // MARK: - State - //-------------------------------------------------- + //-------------------------------------------------- open override func updateView() { updateLabels() - updateSelector() updateAccessibilityLabel() - setNeedsDisplay() + setNeedsLayout() + layoutIfNeeded() } open override func updateAccessibilityLabel() { @@ -281,31 +279,19 @@ open class RadioBox: Control, Changeable { /// Manages the appearance of the radioBox. private var shapeLayer: CAShapeLayer? - - open func updateSelector() { + + open override func layoutSubviews() { + super.layoutSubviews() + //get the colors let backgroundColor = backgroundColorConfiguration.getColor(self) let borderColor = borderColorConfiguration.getColor(self) - let borderWidth = isSelected ? selectorBorderWidthSelected : selectorBorderWidth + let borderWidth = isSelected || isHighlighted ? selectorBorderWidthSelected : selectorBorderWidth selectorView.backgroundColor = backgroundColor selectorView.layer.borderColor = borderColor.cgColor selectorView.layer.cornerRadius = selectorCornerRadius selectorView.layer.borderWidth = borderWidth - - layer.setNeedsDisplay() - } - - open override func layoutSubviews() { - super.layoutSubviews() - // Accounts for any size changes - layer.setNeedsDisplay() - } - - open override func draw(_ layer: CALayer, in ctx: CGContext) { - - let borderColor = borderColorConfiguration.getColor(self) - shapeLayer?.removeFromSuperlayer() shapeLayer = nil