Сделайте каждую ячейку collectionview другим цветом при клике в зависимости от выбранного клика - PullRequest
0 голосов
/ 09 июня 2019

Я хочу, чтобы цвет первой выбранной ячейки в моем представлении коллекции соответствовал первому цвету в массиве, следующей выбранной ячейке соответствовал второму цвету в массиве и т. Д. Что означает, что у меня есть массив

let colorArray:[UIColor] = [UIColor.blue, UIColor.green, UIColor.red]

Я хочу, чтобы первая выделенная ячейка была синей, затем зеленой, следующей красной. Если я откажусь от выбора двух из трех ячеек, они больше не будут окрашены, и следующая выделенная ячейка будет зеленой.

Я знаю, что есть множество способов сделать это, но я устанавливаю цвет фона через настройку свойства isHighlighted в ячейке, поэтому мне нужно, чтобы цвет передавался в ячейку, прежде чем выделенное свойство будет задавать. Метод didSelectItemAt вызывается после того, как свойство установлено, поэтому оно не работает.

override var isHighlighted: Bool {

        didSet  {

            if isHighlighted {
                //set background color here
            }

Было бы лучше, если бы существовал сопоставимый метод для willSelectAtPath, как с ячейками табличного вида, но все, что я нашел, это shouldSelectItemAt, и он не вызывается до того, как установлено выделенное свойство.

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

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