项目中经常遇到button在enable和disabled状态下背景色不同。UIButton只提供setBackgroundImage:(nullable UIImage *)image forState:(UIControlState)state的方法来设置背景色。
如果只给color直接设置不了。
所以需要通过UIColor来初始化UIImage的方法
extension UIImage {
convenience init?(color: UIColor) {
let rect = CGRect(0, 0, 1, 1)
UIGraphicsBeginImageContext(rect.size)
color.setFill()
UIRectFill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
guard let cgImage = image?.cgImage else { return nil }
self.init(cgImage: cgImage)
}
}