选择行时更改UIImageView中的图像?

时间:2017-02-28 13:46:45

标签: ios xcode uitableview uiimageview uicolor

这是项目在选中时的外观。

enter image description here

通常行有黑色背景,图标有白色前景。但选择一行将使背景半白。这是一种将图像更改为相反颜色的方法,或者在选择imageView行时在imageView中使用不同的图像?

3 个答案:

答案 0 :(得分:0)

已经回答了这个问题Changing UIImage color

您应该将图片声明为面具(.alwaysTemplate),然后您可以为tintColor更改UIColor

答案 1 :(得分:0)

使用@ NSDmitry的示例,您需要覆盖setSelected(_ selected: Bool, animated: Bool)上的UITableViewCell并设置整个tintColor的{​​{1}}或contentView

答案 2 :(得分:0)

是的,可以使用突出显示的图像设置UIImageView颜色。它有两种类型的图像属性。正常和突出显示的图像。
此选项在接口文件(storyboard / XIB)中的属性检查器中可用。
另一个选项可用于矢量图像,您可以在其中为图像资源的模板类型设置tintColor。

<强>夫特 您也可以以编程方式设置这两个属性。

let imageView = UIImageView(<set your initialiser>)
imageView.image = //Your normal image
imageView.highlightedImage = //You highligted image

根据您的tableview行选择状态,将图像状态从正常更改为突出显示,反之亦然。 imageView.isHighlighted = true / false

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    imageView.isHighlighted = true
}

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    imageView.isHighlighted = false
}


enter image description here