Как добавить темный оттенок при нажатии на ячейку таблицы? - PullRequest
0 голосов
/ 28 января 2019

У меня есть таблица с несколькими ячейками.Каждый из них содержит изображение и метку в центре.Когда пользователь нажимает на ячейку, я хочу, чтобы она стала немного темнее, чтобы пользователь знал, что он нажимает на ячейку.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Если вы хотите немного затемнить ячейку и выделить ее, отметьте свойство в UITaleView, которое называется isUserInteractionEnabled.

Это поведение уже реализовано по умолчанию в UITableViewCell, однако, если это не то, что вы ищете, вы можете реализовать функцию делегирования didSelectRowAt и делать все, что вы хотите в этой ячейке, или вы можете использоватьdidHighlightRowAt.

Вы можете прочитать об этих функциях много в Интернете здесь - пример реализации didSelectRowAt.

ОБНОВЛЕНИЕ : некоторые обходные пути, чтобы вручную показать пользователю, что он нажал, в методе didSelectRowAt, добавляющем это.

let cell =  (tableView.cellForItem(at: indexPath) as! MyCustomCell)
UIView.animate(withDuration: 0.4) {
   cell.imageView.highlightedImage = cell.imageView.image?.withRenderingMode(.alwaysTemplate)
   cell.imageView.tintColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.3)
UIView.animate(withDuration: 0.4, animations: {
                    talbeView.deselectItem(at: indexPath, animated: true)
})
}

Это вручную покроет изображение в представлении изображения тем цветом, который вы установили в этом случае - черный с непрозрачностью 0.3.

А затем отмените выбор ячейки, все это завернуто в 0.4 время анимации.

0 голосов
/ 28 января 2019

Пожалуйста, возьмите кнопку сверху изображения с таким же размером, как ячейка.Просто перетащите розетку и действуйте.Используйте этот код для управления выбором и отменой выбора.

Выбор:

sender.backgroundColor = UIColor.black.withAlphaComponent(0.35)

Отмена выбора:

sender.backgroundColor = UIColor.black.withAlphaComponent(0.0)

Счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...