在运行时更改UIImage渲染模式

时间:2019-10-01 12:28:41

标签: ios uiimageview uiimage

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

1 个答案:

答案 0 :(得分:1)

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

示例代码

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];
}

这个作品很好,已经过测试