Моя цель - установить textColor
моего подкласса UILabel
в моем контроллере. У меня есть подкласс UILabel
по имени CircleLabel
. Вот основы этого:Подкласс UILabel инициализируется пользовательским цветом
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
}
}
Как вы можете видеть, каждый CircleLabel я создаю экземпляр по умолчанию настроен на свойство TextColor из UIColor.whiteColor(), которая работает должным образом. На мой взгляд, viewDidLoad контроллера, я хочу установить для CircleLabel динамическое свойство textColor
. Так что-то вроде этого:
class myViewController: UIViewController {
@IBOutlet weak var myCustomLabel: CircleLabel!
override func viewDidLoad() {
super.viewDidLoad()
myCustomLabel.textColor = UIColor.blackColor()
}
Это не работает, потому что textColor
установлен в drawRect
способе UILabel
подкласса. Что я могу реализовать в моем подклассе CircleLabel
(с помощью вспомогательного метода, такого как мой метод setProperties или каким-либо другим способом), который позволил бы мне установить textColor
моей пользовательской метки в моем контроллере представления?
ли вы принять то же самое подход для переопределения «шрифта» метки, содержащей атрибутный текст? Подобно тому, как использовать текущий атрибут текста в «общем в» и переопределять его изменчивой копией, которая содержит другой шрифт. (Просто интересно, будет ли это работать, поскольку у вас есть опыт в этом, и я сам это ищу) – Pochi