fixed bug for disabled

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-07-29 09:54:26 -05:00
parent eaae15658e
commit 529be82f36

View File

@ -101,10 +101,10 @@ public class DefaultToggleModel: DefaultLabelModel, VDSToggleModel {
// MARK: - Static Properties
//--------------------------------------------------
// Sizes are from InVision design specs.
public static var toggleSize = CGSize(width: 52, height: 24)
public static var toggleSize = CGSize(width: 51, height: 31)
open class func getToggleScaledSize() -> CGSize { return Self.toggleSize }
public static var knobSize = CGSize(width: 20, height: 20)
public static var knobSize = CGSize(width: 28, height: 28)
open class func getKnobScaledSize() -> CGSize { return Self.knobSize }
//--------------------------------------------------
@ -407,18 +407,8 @@ public class DefaultToggleModel: DefaultLabelModel, VDSToggleModel {
setAccessibilityHint(!viewModel.disabled)
setAccessibilityValue(viewModel.on)
UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseIn, animations: {
if viewModel.on {
self.knobView.backgroundColor = self.knobTintColor.on
self.toggleView.backgroundColor = self.containerTintColor.on
} else {
self.knobView.backgroundColor = self.knobTintColor.off
self.toggleView.backgroundColor = self.containerTintColor.off
}
}, completion: nil)
UIView.animate(withDuration: 0.33, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 0.2, options: [], animations: {
//private func
func constrainKnob(){
self.knobLeadingConstraint?.isActive = false
self.knobTrailingConstraint?.isActive = false
if viewModel.on {
@ -432,7 +422,28 @@ public class DefaultToggleModel: DefaultLabelModel, VDSToggleModel {
self.knobLeadingConstraint?.isActive = true
self.knobWidthConstraint?.constant = Self.getKnobScaledSize().width
self.layoutIfNeeded()
}, completion: nil)
}
if viewModel.disabled {
toggleView.backgroundColor = isEnabled ? isOn ? containerTintColor.on : containerTintColor.off : disabledTintColor.container
knobView.backgroundColor = isEnabled ? isOn ? knobTintColor.on : knobTintColor.off : disabledTintColor.knob
constrainKnob()
} else {
UIView.animate(withDuration: 0.2, delay: 0.0, options: .curveEaseIn, animations: {
if viewModel.on {
self.knobView.backgroundColor = self.knobTintColor.on
self.toggleView.backgroundColor = self.containerTintColor.on
} else {
self.knobView.backgroundColor = self.knobTintColor.off
self.toggleView.backgroundColor = self.containerTintColor.off
}
}, completion: nil)
UIView.animate(withDuration: 0.33, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 0.2, options: [], animations: {
constrainKnob()
}, completion: nil)
}
backgroundColor = viewModel.surface == .dark ? VDSColor.backgroundPrimaryDark : .clear
isUserInteractionEnabled = !viewModel.disabled