J'ai appris que nous pouvons changer l'apparence du bouton UISwitch dans son état « on », mais est-il également possible de changer la couleur de l'UISwitch dans l'état « off » ?
Réponses
Trop de publicités?
Long Pham
Points
3961
Ma solution avec #SWIFT2 :
let onColor = _your_on_state_color
let offColor = _your_off_state_color
let mSwitch = UISwitch(frame: CGRect.zero)
mSwitch.on = true
/*For on state*/
mSwitch.onTintColor = onColor
/*For off state*/
mSwitch.tintColor = offColor
mSwitch.layer.cornerRadius = mSwitch.frame.height / 2.0
mSwitch.backgroundColor = offColor
mSwitch.clipsToBounds = true
Résultat :
Sourabh
Points
474
bengoesboom
Points
1915
matt
Points
60113
Voici une assez bonne astuce : vous pouvez juste atteindre directement dans la vue secondaire de l'UISwitch qui tire son "off" arrière-plan, et changer sa couleur d'arrière-plan. Cela fonctionne beaucoup mieux sur iOS 13 que sur iOS 12 :
if #available(iOS 13.0, *) {
self.sw.subviews.first?.subviews.first?.backgroundColor = .green
} else if #available(iOS 12.0, *) {
self.sw.subviews.first?.subviews.first?.subviews.first?.backgroundColor = .green
}