使用 UIImage.renderingMode() 创建图像

Posted

技术标签:

【中文标题】使用 UIImage.renderingMode() 创建图像【英文标题】:Creating an image with UIImage.renderingMode() 【发布时间】:2018-10-25 04:31:53 【问题描述】:

我在代码中初始化图像时遇到了一些问题。当它所在的单元格像这样突出显示时,我正在尝试更改它的 tintColor 属性:

iconImageView.tintColor = isHighlighted ? UIColor.white : UIColor.black

为此,我使用以下行初始化图像:

iconImageView.image = UIImage(named: imageName)?.renderingMode(.alwaysTemplate)

但我收到以下错误:

不能调用非函数类型'UIImage.RenderingMode'的值

有什么建议吗?

【问题讨论】:

嘿,试试这个链接***.com/questions/24145221/… 【参考方案1】:

“renderingMode”是 UIImage 的只读属性。

创建并返回具有指定渲染模式的新图像对象。 你可以使用:

open func withRenderingMode(_ renderingMode: UIImage.RenderingMode) -> UIImage

代码sn-p:

let imageView: UIImageView = UIImageView.init()
let image = UIImage.init(named: "name")?.withRenderingMode(.alwaysOriginal)
imageView.image = image

【讨论】:

【参考方案2】:

renderingMode 指定图像可能的渲染模式。

withRenderingMode(_:) 创建并返回具有指定渲染模式的新 UIImage 对象。

因此,您需要使用 withRenderingMode(_:) 这是一个函数而不是 renderingMode 这是一个属性。

let image = UIImage(named: "imageName")?.withRenderingMode(.alwaysTemplate)
iconImageView.image.setImage(image, for: .normal)
iconImageView.image.tintColor = isHighlighted ? UIColor.white : UIColor.black

【讨论】:

以上是关于使用 UIImage.renderingMode() 创建图像的主要内容,如果未能解决你的问题,请参考以下文章

UIImage RenderingMode:UIImageRenderingModeAutomatic vs UIImageRenderingModeAlwaysOriginal vs UIImage

使用 UIImage RenderingMode Always Template 在 iPhone 6 上出现的颜色不同

android 怎样实现 uiimagerenderingmodealwaysoriginal效果

设置Image渲染模式使用TintColor

测试使用

第一篇 用于测试使用