My goal is to set the textColor
of my custom UILabel
subclass in my view controller. I have a UILabel
subclass named CircleLabel
. Here are the basics of it:
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
}
}
As you can see, every CircleLabel I instantiate is defaulted to a textColor property of UIColor.whiteColor(), which works properly. In my view controller's viewDidLoad, I want to set my CircleLabel to have a dynamic textColor
property. So something like this:
class myViewController: UIViewController {
@IBOutlet weak var myCustomLabel: CircleLabel!
override func viewDidLoad() {
super.viewDidLoad()
myCustomLabel.textColor = UIColor.blackColor()
}
That doesn't work because textColor
is set in the drawRect
method of the UILabel
subclass. What can I implement in my CircleLabel
subclass (via a helper method like my setProperties helper method or some other way) that would allow me to set the textColor
of my custom label in my view controller?