使用 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 上出现的颜色不同