refactored radiobox, fixed bug

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-06-05 10:57:56 -05:00
parent 17fe50223c
commit a2c3c94ef1

View File

@ -155,8 +155,6 @@ open class RadioBox: Control, Changeable {
selectorStackView.addArrangedSubview(subTextRightLabel) selectorStackView.addArrangedSubview(subTextRightLabel)
selectorLeftLabelStackView.addArrangedSubview(textLabel) selectorLeftLabelStackView.addArrangedSubview(textLabel)
selectorLeftLabelStackView.addArrangedSubview(subTextLabel) selectorLeftLabelStackView.addArrangedSubview(subTextLabel)
updateSelector()
selectorView.pinToSuperView() selectorView.pinToSuperView()
mainStackView.pinToSuperView(.init(top: 16, left: 16, bottom: 16, right: 16)) mainStackView.pinToSuperView(.init(top: 16, left: 16, bottom: 16, right: 16))
@ -241,12 +239,12 @@ open class RadioBox: Control, Changeable {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - State // MARK: - State
//-------------------------------------------------- //--------------------------------------------------
open override func updateView() { open override func updateView() {
updateLabels() updateLabels()
updateSelector()
updateAccessibilityLabel() updateAccessibilityLabel()
setNeedsDisplay() setNeedsLayout()
layoutIfNeeded()
} }
open override func updateAccessibilityLabel() { open override func updateAccessibilityLabel() {
@ -281,31 +279,19 @@ open class RadioBox: Control, Changeable {
/// Manages the appearance of the radioBox. /// Manages the appearance of the radioBox.
private var shapeLayer: CAShapeLayer? private var shapeLayer: CAShapeLayer?
open func updateSelector() { open override func layoutSubviews() {
super.layoutSubviews()
//get the colors //get the colors
let backgroundColor = backgroundColorConfiguration.getColor(self) let backgroundColor = backgroundColorConfiguration.getColor(self)
let borderColor = borderColorConfiguration.getColor(self) let borderColor = borderColorConfiguration.getColor(self)
let borderWidth = isSelected ? selectorBorderWidthSelected : selectorBorderWidth let borderWidth = isSelected || isHighlighted ? selectorBorderWidthSelected : selectorBorderWidth
selectorView.backgroundColor = backgroundColor selectorView.backgroundColor = backgroundColor
selectorView.layer.borderColor = borderColor.cgColor selectorView.layer.borderColor = borderColor.cgColor
selectorView.layer.cornerRadius = selectorCornerRadius selectorView.layer.cornerRadius = selectorCornerRadius
selectorView.layer.borderWidth = borderWidth 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?.removeFromSuperlayer()
shapeLayer = nil shapeLayer = nil