在运行时更改 UIImage 渲染模式

Change UIImage render mode at runtime

在我正在开发的应用程序中,我有一些可能(或可能不需要)需要自定义的 UIImageView。如何在运行时更改作为原始图像加载到模板的图像的渲染模式?

您可以从另一个 cgImage 初始化一个 UIImage,然后您可以根据需要渲染它

示例代码

let originalImage = UIImage(named: "TimeClock2Filled")?.withRenderingMode(.alwaysOriginal)
if let original = originalImage?.cgImage {
    let image2 = UIImage(cgImage: original).withRenderingMode(.alwaysTemplate)
}

示例代码Objective-C

UIImage * image = [[UIImage imageNamed:@"TimeClock2Filled"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
if(image.CGImage != nil) {
    UIImage * image2 = [[UIImage imageWithCGImage:image.CGImage]imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
}

这个工作正常已经过测试