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)
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