Как изменить цвет UIImage при нажатии на ячейку таблицы?

Так что я застрял на этом в течение дня или около того. Как изменить цвет цвета UIImage при нажатии на ячейку таблицы? Так, например, у меня есть черное изображение, и когда я нажимаю на ячейку таблицы, оно меняет это изображение на белое? Благодарю вас!

Я пытался использовать этот код, но не знаю, как правильно его реализовать!

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

person MSmith    schedule 12.09.2016    source источник
comment
Вы знаете, как создать собственный tableViewCell?   -  person Sam_M    schedule 13.09.2016


Ответы (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
    }
}
person keithbhunter    schedule 12.09.2016
comment
Спасибо, я попробую это! Нужно ли мне создавать выход для imageView, чтобы код, который я добавил, работал? У меня также есть несколько ячеек с разными изображениями! Как мне заставить каждый из них становиться белым при нажатии на ячейку? - person MSmith; 12.09.2016
comment
Если вы используете класс UITableViewCell по умолчанию, вам не нужно делать розетки. Если вы используете настраиваемую ячейку представления таблицы, то да, вам нужно будет подключить выходы для представлений изображений ваших пользовательских ячеек. Если в вашей ячейке есть несколько представлений изображений, измените цвет оттенка для каждого изображения в методе делегата didSelect. - person keithbhunter; 12.09.2016
comment
Я использую табличное представление по умолчанию. Не могли бы вы добавить код, чтобы показать, как бы вы изменили его для каждого изображения? Также код, который вы ввели в cellForRow, не работает. Спасибо - person MSmith; 12.09.2016