#単色のUIImage生成
SwiftのUIButtonのtitleColor
は state
によって動的に変えることができますが、背景色は変えられません。
そのため、動的に変更することが可能な、単色のUIImageを背景に設定することで背景を動的に変更するようにします。
var image: UIImage? {
let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
UIGraphicsBeginImageContext(rect.size)
guard let context = UIGraphicsGetCurrentContext() else {
return nil
}
context.setFillColor(UIColor(red: 1, green: 1, blue: 1, alpha: 0.8).cgColor)
context.fill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
#使い方
任意の場所でこのように書くと任意の色で設定することができます!
let button = UIButton()
button.setBackgroundImage(image, for: .normal)
button.setBackgroundImage(image, for: .highlighted)