在运行时更改 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];
}
这个工作正常已经过测试
在我正在开发的应用程序中,我有一些可能(或可能不需要)需要自定义的 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];
}
这个工作正常已经过测试