У меня есть UIImage
на UIViewController
, как это изображение
И я хочу изменить его цвет на solid. Я попытался использовать приведенный ниже код
func imageWithColor(tintColor: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
let context = UIGraphicsGetCurrentContext()!
context.translateBy(x: 0, y: self.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.setBlendMode(.normal)
let rect = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height) as CGRect
context.clip(to: rect, mask: self.cgImage!)
tintColor.setFill()
context.fill(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}
, но он просто залил прямоугольник и изменил цвет изображения вместе с фоном.
Есть ли какое-то решение для этого, чтобы просто изменить оставшийся цвет фона изображения останутся такими же?