UILabel sous-classe initialiser avec des couleurs personnalisées

Mon but est de mettre la textColor de ma coutume UILabel sous-classe de mon point de vue contrôleur. J'ai un UILabel sous-classe nommée CircleLabel. Voici les bases:

class CircleLabel: UILabel {

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
}

override init(frame: CGRect) {
    super.init(frame: frame)
}

override func drawRect(rect: CGRect) {
    self.layer.cornerRadius = self.bounds.width/2
    self.clipsToBounds = true
    super.drawRect(rect)
}

override func drawTextInRect(rect: CGRect) {
    self.textColor = UIColor.whiteColor()
    super.drawTextInRect(rect)
}

func setProperties(borderWidth: Float, borderColor: UIColor) {
    self.layer.borderWidth = CGFloat(borderWidth)
    self.layer.borderColor = borderColor.CGColor
}

}

Comme vous pouvez le voir, chaque CircleLabel j'instancie est paramétré par défaut pour une textColor propriété de UIColor.whiteColor(), qui fonctionne correctement. De mon point de vue du contrôleur de viewDidLoad, je veux mettre mon CircleLabel dynamique textColor de la propriété. Donc quelque chose comme ceci:

class myViewController: UIViewController {
    @IBOutlet weak var myCustomLabel: CircleLabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        myCustomLabel.textColor = UIColor.blackColor()
}

Qui ne fonctionne pas parce que textColor est situé dans le drawRect méthode de la UILabel sous-classe. Que puis-je mettre en œuvre dans ma CircleLabel sous-classe (via une méthode d'assistance comme mon setProperties méthode d'assistance ou d'une autre façon) qui me permettrait de définir la textColor de mon étiquette personnalisée de mon point de vue contrôleur?

InformationsquelleAutor Aaron | 2015-10-25