代码之家  ›  专栏  ›  技术社区  ›  Joe

具有属性的子类UIButton未更改UI

  •  0
  • Joe  · 技术社区  · 7 年前

    我有一个非常简单的UIButton子类,有一个属性: bgPropertyColor

    我希望能够调整 bgPropertyColor属性 属性。在我下面的示例中,我可以访问bgPropertyColor属性,但是颜色(红/蓝/绿)没有按我的意愿应用到按钮背景。

    UI按钮

    class CustomButton:UIButton {
    
        var bgPropertyColor = UIColor.clear
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
            self.backgroundColor = bgPropertyColor
        }
    
    }
    

    视图控制器

    class ViewController: UIViewController {
    
        @IBOutlet weak var b1: CustomButton!
        @IBOutlet weak var b2: CustomButton!
        @IBOutlet weak var b3: CustomButton!
    
    
        override func viewDidLoad() {
            super.viewDidLoad()
            b1.bgPropertyColor = .red
            b2.bgPropertyColor = .blue
            b3.bgPropertyColor = .green
        }
    
    }
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   Shehata Gamal    7 年前

    你可能需要

    var bgPropertyColor : UIColor = UIColor.clear {
      didSet {
        self.backgroundColor  = bgPropertyColor 
      }
    }
    

    作为改变 bgPropertyColor 不会反映到 backgroundColor 背景色 它直接在IB/代码中