My goal is to set the textColor my custom subclass of UILabel in my view controller. I have a subclass of UILabel named CircleLabel . Here is the basic information:
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, each instance of CircleLabel I by default has the textColor property UIColor.whiteColor (), which works correctly. In my opinion, controller viewDidLoad, I want to set the dynamic property textColor for CircleLabel. So something like this:
class myViewController: UIViewController { @IBOutlet weak var myCustomLabel: CircleLabel! override func viewDidLoad() { super.viewDidLoad() myCustomLabel.textColor = UIColor.blackColor() }
This does not work because textColor set in the drawRect method of the UILabel subclass. What can I implement in my CircleLabel subclass (via a helper method, like my setProperties method or some other way) that would allow me to set the textColor my custom label in my view controller?
source share