2017-02-12 64 views
3

我有一個圖像,在UIImageView裏面,它帶有一個默認顏色,讓我們說一個自定義灰色。
在我在某些時候的代碼,我用這種方式在投射色調後迅速恢復原始圖像的顏色

myImageView.image = myImageView.image!.withRenderingMode(.alwaysTemplate) 
myImageView.tintColor = someCondition() ? UIColor.red : UIColor.lightGray 

設置不同的tint事實是,我不能要回圖像的原始灰色。我的問題是,如果有一種方法可以用我的代碼的UIColor.lightGray部分代替UIImageView而不是使用任何色調,但它的原始顏色。

+0

你試過* UIColor.clear *或*零*? – dfd

+0

是的,但兩者都使圖像透明不幸 – r4id4

回答

3

不應用可以設置圖像渲染模式,任何這樣的色調:

image.renderingMode = .alwaysOriginal 

在你的代碼,你可以說:

let renderingMode: UIImageRenderingMode = condition ? .alwaysTemplate : .alwaysOriginal 
myImageView.image = myImageView.image?.withRenderingMode(renderingMode)