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?
Screenshot
You do not need to override
drawRect
in your case,just create the class like thisThen