59 votes

Comment définir la couleur de la bordure de swift 3 UITextField ?

Bonjour, je n'ai pas de code d'erreur pour le changement de couleur de la bordure de UITextfield mais lorsque je l'utilise dans Swift 3, la couleur de la bordure du champ de texte ne change pas et ne donne pas d'erreur. J'ai besoin de votre aide, mes codes sont les suivants.

@IBOutlet weak var email: UITextField!
@IBOutlet weak var pass: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()

    let myColor : UIColor = UIColor.white()
    email.layer.borderColor = myColor.cgColor
    pass.layer.borderColor = myColor.cgColor

}

Merci !

126voto

Lion Points 19154

Vous devez également définir border width En effet, la couleur de la bordure est déjà définie, mais la largeur par défaut de la bordure est de 0,0, de sorte que vous ne pouvez pas la voir.

Donc, définissez la largeur de la bordure comme suit,

  email.layer.borderWidth = 1.0

Mise à jour :

Votre code devrait être comme,

 @IBOutlet weak var email: UITextField!
 @IBOutlet weak var pass: UITextField!

 override func viewDidLoad() {
   super.viewDidLoad()

   let myColor = UIColor.white
   email.layer.borderColor = myColor.cgColor
   pass.layer.borderColor = myColor.cgColor

   email.layer.borderWidth = 1.0
   pass.layer.borderWidth = 1.0

}

0 votes

Merci d'avoir travaillé je pense que cela va aider beaucoup de gens pouvez-vous écrire les codes complets dans votre réponse je l'accepterai

0 votes

De rien... :) réponse mise à jour selon votre suggestion... :)

0 votes

Je pense que vous devez supprimer () dans swift 3.

12voto

Nimisha joshy Points 111

Utilisez le code ci-dessous dans swift 3 :

en vue n'a pas chargé

 outer_line.layer.borderWidth = 1
 outer_line.layer.borderColor = UIColor.lightGray.cgColor

10voto

Ashish Thakkar Points 741

Essayez d'utiliser ceci, Il pourrait vous être utile

let myColor : UIColor = UIColor( red: 0.5, green: 0.5, blue:0, alpha: 1.0 )
myTextField.layer.masksToBounds = true
myTextField.layer.borderColor = myColor.CGColor
myTextField.layer.borderWidth = 2.0

10voto

kamwysoc Points 3917

Je pense que vous devriez d'abord fournir un borderWidth

@IBOutlet weak var email: UITextField!
@IBOutlet weak var pass: UITextField!

override func viewDidLoad() {
super.viewDidLoad()

let myColor : UIColor = UIColor.white()
email.layer.borderWidth = 1
email.layer.borderColor = myColor.cgColor
pass.layer.borderColor = myColor.cgColor

}

et ensuite définir une couleur :)

6voto

Kiran jadhav Points 1525

Mise à jour de Swift 3 :

si vous voulez définir la bordure inférieure de UITextField, utilisez les lignes de code ci-dessous :

// définition de la fonction :

func setBottomBorderToTextFields()  {

    let bottomLine = CALayer()
    bottomLine.frame = CGRect(x: 0, y: yourTextFieldName.frame.height - 1, width: yourTextFieldName.frame.width, height: 1)
    bottomLine.backgroundColor = UIColor.gray.cgColor // background color
    yourTextFieldName.borderStyle = UITextBorderStyle.none // border style
    yourTextFieldName.layer.addSublayer(bottomLine)
}

// Dans ViewDidLoad() :

self.setBottomBorderToTextFields()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X