点击 tableview 单元格时如何更改 UIImage 颜色?

Posted

技术标签:

【中文标题】点击 tableview 单元格时如何更改 UIImage 颜色?【英文标题】:How do I change a UIImage color when tapping tableview cell? 【发布时间】:2016-09-12 19:53:25 【问题描述】:

所以我已经坚持了一天左右。点击表格视图单元格时如何更改 UIImage 颜色的颜色?例如,我有一个黑色图像,当我点击一个表格视图单元格时,它会将该图像更改为白色?谢谢!

我尝试使用此代码,但我不知道如何正确实现它!

    let theImageView = UIImageView(image: UIImage(named:"foo")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate))
theImageView.tintColor = UIColor.redColor()

【问题讨论】:

你知道如何创建自定义tableViewCell吗? 【参考方案1】:

看起来你有正确的部分,但不知道在哪里调用它们。您将在 cellForRowAt: 方法中将图像分配给图像视图。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath)
    cell.imageView.image = UIImage(named:"foo")!.withRenderingMode(.alwaysTemplate)
    return cell

然后您将在didSelect 委托方法中更改图像视图的色调颜色。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
    if let cell = tableView.cellForRow(at: indexPath) 
        cell.imageView.tintColor = newColor
    

【讨论】:

谢谢,我会试试这个!我是否需要为 imageView 创建一个插座才能使我添加的代码正常工作?我也有多个具有不同图像的单元格!点击单元格时如何让它们中的每一个都变白? 如果你使用默认的UITableViewCell类,那么你就不需要做outlets了。如果您使用的是自定义表格视图单元格,那么是的,您需要为自定义单元格的图像视图连接插座。如果您的单元格有多个图像视图,则在didSelect 委托方法中更改每个图像视图的色调颜色。 我使用的是默认表格视图。您能否添加代码以显示如何为每个图像更改它?您在 cellForRow 中输入的代码也不起作用。谢谢

以上是关于点击 tableview 单元格时如何更改 UIImage 颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 tableViews 自调整单元格时在运行时更改表格视图单元格高度?

如何在使用tableViews自定义单元格时在运行时更改表视图单元格高度?

在选择表格视图单元格时更改按钮的标题

当tableview结束显示单元格时如何更改为读取状态?

为 iOS 选择 TableView 单元格时视图已更改

如何在自定义滑动(而不是滑动删除)单元格(滑动到邮件/短信)中点击一个单元格时删除在其他 TableView 单元格中添加的子视图