施放色彩后,Swift恢复原始图像颜色

r4i*_*id4 6 uiimageview ios swift

我有一个图片,里面UIImageView有一个默认颜色,让我们说一个自定义的灰色.
在我的代码中,我在某种程度上设置了不同tint的方式

myImageView.image = myImageView.image!.withRenderingMode(.alwaysTemplate)
myImageView.tintColor = someCondition() ? UIColor.red : UIColor.lightGray
Run Code Online (Sandbox Code Playgroud)

事实是,我无法恢复到图像的原始灰色.我的问题是,是否有办法UIColor.lightGray用一些东西来代替我的代码部分,告诉UIImageView 不要使用任何色调,而是它的原始颜色.

sim*_*ere 6

要不应用任何色调,您可以像这样设置图像渲染模式:

image.renderingMode = .alwaysOriginal
Run Code Online (Sandbox Code Playgroud)

在您的代码中,您可以说:

let renderingMode: UIImageRenderingMode = condition ? .alwaysTemplate : .alwaysOriginal
myImageView.image = myImageView.image?.withRenderingMode(renderingMode)
Run Code Online (Sandbox Code Playgroud)