0
votes

Swift -Comment changer la couleur de la courbe sur un contrôle UISwitch

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)

 entrez la description de l'image ici

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


2 commentaires

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 -


3 Réponses :


1
votes

Changer la couleur de teinte d'UISwitch

mSwitch.tintColor = offColor // Couleur personnalisée


0 commentaires

0
votes

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.


1 commentaires

Merci d'avoir répondu!



2
votes

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:

Créer un UISwitch personnalisé (partie 1) < / p>


1 commentaires

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