web-dev-qa-db-fra.com

Erreur Swift: impossible d'affecter une valeur de type UIColor à un type CGColor

À mon avis, j'ai deux champs de saisie, loginEmailInput et loginPasswordInput.

J'essaie de changer la couleur de la bordure. Mon code dans ViewController.Swift ressemble à ceci:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var loginPasswordInput: UITextField!
    @IBOutlet weak var loginEmailInput: UITextField!

    let borderColor : UIColor = UIColor(red:0.39, green:0.76, blue:0.37, alpha:1)
    loginEmailInput.layer.borderColor = borderColor
    loginPasswordInput.layer.borderColor = borderColor

    override func viewDidLoad() {
        super.viewDidLoad()

        //etc....

Cependant, ces deux lignes affichent une erreur:

loginEmailInput.layer.borderColor = borderColor
loginPasswordInput.layer.borderColor = borderColor

L'erreur est:

Impossible d'affecter la valeur de type UIColor au type CGColor

Comment résoudre ce problème?

11
Ben

Pour une utilisation de CALayer

UIColor.blue.cgColor (example)

En général, les calques/CALayers utilisent des couleurs CG (Core Graphics). Tandis que pour quelque chose comme l'arrière-plan de la vue, vous pouvez utiliser quelque chose comme view.backgroundColor = .blue. UIColor fait partie de UIKit FrameWork (NSObject), CG fait partie de Core Graphic (CF/Core Foundation Library).

Pour une couche, vous faites 

UIColor.blueColor().CGColor
45
Akshansh Thakur

imageView.layer.borderColor = UIColor.black.cgColor

0
Wasim