On dirait que vous pourriez faire quelques petites choses. Vous pouvez utiliser l'image que vous avez mais masquer une vue blanche et placer une vue bleue derrière elle. Vous pouvez également ajuster l'élément d'image que vous utilisez en inversant la transparence. Ou vous pouvez utiliser CoreImage
pour le faire dans le code. Par exemple:
func invertMask(_ image: UIImage) -> UIImage?
{
guard let inputMaskImage = CIImage(image: image),
let backgroundImageFilter = CIFilter(name: "CIConstantColorGenerator", withInputParameters: [kCIInputColorKey: CIColor.black]),
let inputColorFilter = CIFilter(name: "CIConstantColorGenerator", withInputParameters: [kCIInputColorKey: CIColor.clear]),
let inputImage = inputColorFilter.outputImage,
let backgroundImage = backgroundImageFilter.outputImage,
let filter = CIFilter(name: "CIBlendWithAlphaMask", withInputParameters: [kCIInputImageKey: inputImage, kCIInputBackgroundImageKey: backgroundImage, kCIInputMaskImageKey: inputMaskImage]),
let filterOutput = filter.outputImage,
let outputImage = CIContext().createCGImage(filterOutput, from: inputMaskImage.extent) else { return nil }
let finalOutputImage = UIImage(cgImage: outputImage)
return finalOutputImage
}
double possible de [masque inverti iOS drawRect] (https://stackoverflow.com/questions/14411765/ios-invert-mask-in-drawrect) – the4kman