Comment puis-je changer la couleur de la courbe qui suit un contrôle UISwitch
? J'ai essayé de changer le borderColor mais c'est lié au cadre.
Voici un exemple de photo d'une autre question. Je veux basculer la couleur de la courbe argentée sur cette photo (pas le bouton rond ni le fond orange)
J'ai essayé ces 2 propriétés mais le .layer.borderWidth = 2.0
et .layer.cornerRadius = 15
change le cadre et non la courbe p>
Quand elle est activée , je veux que la courbe soit .clear
et lorsqu'elle est désactivée , je veux qu'elle soit . rouge
lazy var switchControl: UISwitch = { let switchControl = UISwitch() switchControl.addTarget(self, action: #selector(switchValueDidChange(_:)), for: .valueChanged) }() @objc func switchValueDidChange(_ sender: UISwitch) { if (sender.isOn == true) { sender.layer.borderColor = UIColor.clear.cgColor // this doesn't work } else { sender.layer.borderColor = UIColor.red.cgColor // this doesn't work } }
3 Réponses :
Changer la couleur de teinte d'UISwitch
mSwitch.tintColor = offColor // Couleur personnalisée
Je pensais que cela n'était pas possible sans quelques astuces de piratage du SDK. Mais je propose de créer votre propre contrôle en utilisant une image.
Merci d'avoir répondu!
Oui, comme iChirag l'a dit, cela ne peut pas être fait pour le moment en utilisant le UISwitch
intégré.
Quant à savoir pourquoi ce n'est pas possible, il est difficile de dire avec certitude. Je suppose que c'est parce qu'Apple encourage l'utilisation d'une palette de couleurs limitée dans leur Directives de l'interface utilisateur . L'objectif principal de l'utilisation des couleurs dans une application iOS est essentiellement de communiquer des informations, d'aider l'utilisateur à différencier des parties distinctes de l'interface utilisateur en un coup d'œil ou d'attirer l'attention sur les actions de l'utilisateur. Peut-être pensent-ils que définir une couleur personnalisée pour la courbe d'un UISwitch
est en dehors de ces objectifs.
Cela dit, il est assez facile de créer votre propre UISwitch
personnalisé si vous avez besoin de cette apparence. Voici un tutoriel pour vous aider à démarrer, j'espère que cela vous aidera:
Merci. J'ai choisi iChirag comme réponse acceptée car il l'a dit en premier, mais j'ai voté pour la vôtre pour la réponse détaillée et le lien
J'espère que vous avez déjà vérifié ce lien - stackoverflow.com/a/24896079/3683408 - car vous semblez avoir joint la même image de commutateur . Avez-vous donc besoin de définir la largeur de la bordure des éléments manquants et la propriété du rayon des coins sur ce qui précède votre réponse
@Ram non vous vous trompez, je n'ai pas eu la photo à partir de là, je l'ai obtenue d'ici stackoverflow.com/questions/48404617/... -ces propriétés n'ont rien à voir avec la courbe, ce sont pour le cadre -