У меня UIImage .
Мне нужно программно залить половину синего цвета.Я пытаюсь это:
extension UIImage {
public func maskWithColor(color: UIColor, factor: CGFloat) -> UIImage
{
UIGraphicsBeginImageContextWithOptions(CGSize(width:
self.size.width/2, height: self.size.height), false,
self.scale)
let context = UIGraphicsGetCurrentContext()!
let rect = CGRect(origin: CGPoint.zero, size: size)
color.setFill()
self.draw(in: rect)
context.setBlendMode(.sourceIn)
context.fill(rect)
let resultImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return resultImage
}
}
И результат этого:
Но результат как:
Мне нужна одна половина - синий и другой серый.Как я могу это сделать?