ios – UILabel子类使用自定义颜色初始化

ios – UILabel子类使用自定义颜色初始化,第1张

概述我的目标是在我的视图控制器中设置我的自定义UILabel子类的textColor.我有一个名为CircleLabel的UILabel子类.以下是它的基础知识: class CircleLabel: UILabel {required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)!}override init 我的目标是在我的视图控制器中设置我的自定义UILabel子类的textcolor.我有一个名为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都默认为UIcolor.whitecolor()的textcolor属性,该属性正常工作.在我的视图控制器的vIEwDIDLoad中,我想将CircleLabel设置为具有动态textcolor属性.所以这样的事情:

class myVIEwController: UIVIEwController {    @IBOutlet weak var myCustomLabel: CircleLabel!    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        myCustomLabel.textcolor = UIcolor.blackcolor()}

这不起作用,因为textcolor是在UILabel子类的drawRect方法中设置的.我可以在我的CircleLabel子类中实现什么(通过帮助器方法,比如我的setPropertIEs帮助器方法或其他方式),这样我可以在视图控制器中设置自定义标签的textcolor?

解决方法 截图

在您的情况下,您不需要覆盖drawRect,只需创建这样的类

class CircleLabel: UILabel {required init(coder aDecoder: NSCoder) {    super.init(coder: aDecoder)!    self.commonInit()}overrIDe init(frame: CGRect) {    super.init(frame: frame)    self.commonInit()}func commonInit(){    self.layer.cornerRadius = self.bounds.wIDth/2    self.clipsToBounds = true    self.textcolor = UIcolor.whitecolor()    self.setPropertIEs(1.0,bordercolor:UIcolor.blackcolor())}func setPropertIEs(borderWIDth: float,bordercolor: UIcolor) {    self.layer.borderWIDth = CGfloat(borderWIDth)    self.layer.bordercolor = bordercolor.CGcolor}}

然后

class VIEwController: UIVIEwController {@IBOutlet weak var myCustomLabel: CircleLabel!overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    myCustomLabel.textcolor = UIcolor.blackcolor()    // Do any additional setup after loading the vIEw,typically from a nib.}}
总结

以上是内存溢出为你收集整理的ios – UILabel子类使用自定义颜色初始化全部内容,希望文章能够帮你解决ios – UILabel子类使用自定义颜色初始化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存