1

I set title color of button

button.setTitle("Print 0", for: UIControl.State.normal)

but I have many buttons how can I set it at once set radius and border working but set title have some issues

@objc extension UIButton {
    dynamic var borderColor: UIColor? {
        get {
            if let cgColor = layer.borderColor {
                return UIColor(cgColor: cgColor)
            }
            return nil
        }
        set { layer.borderColor = newValue?.cgColor }
    }

    dynamic var borderWidth: CGFloat {
        get { return layer.borderWidth }
        set { layer.borderWidth = newValue }
    }

    dynamic var cornerRadius: CGFloat {
        get { return layer.cornerRadius }
        set { layer.cornerRadius = newValue }
    }
      dynamic var setTitleColor: UIButton? {
        get {
            if let cgColor = layer.color {
                return UIColor(cgColor: cgColor)
            }
            return nil
        }
        set { layer.setTitleColor = newValue?.cgColor }
    }

}
Mr Abbasi
  • 97
  • 11

1 Answers1

0

Instead of layer.color, use titleColor(for:) and setTitleColor(, for:) like this:

extension UIButton {
    dynamic var normalTitleColor: UIColor? {
        get {
            return titleColor(for: .normal)
        }
        set {
            setTitleColor(newValue, for: .normal)
        }
    }
}
Yonat
  • 4,382
  • 2
  • 28
  • 37