Изменение цвета фона на solid цвет в Swift5 - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть UIImage на UIViewController, как это изображение

like this

И я хочу изменить его цвет на 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
}

, но он просто залил прямоугольник и изменил цвет изображения вместе с фоном.

Есть ли какое-то решение для этого, чтобы просто изменить оставшийся цвет фона изображения останутся такими же?

...