случайное поведение при прокрутке горизонтального представления коллекции - PullRequest
0 голосов
/ 31 января 2019

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

    override func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    let cell = cell as! CartStepMenuCell
    let index = indexPath.item
    if index == 4{
        cell.seperator.isHidden = true
    }
}

Дело в том, что при прокрутке назад и вперед bakckground первой ячейки скрывается, а последняя - нет.

Ответы [ 2 ]

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

Представления в collectionView используются повторно, поэтому все, что вы делаете с представлением, также должно быть отменено.Мое правило: любой код, который касается повторно используемого представления, не может иметь if без else.В этом случае вы можете полностью удалить if:

    cell.seperator.isHidden = (index == 4)

Таким образом, он будет правильно установлен и отменен при повторном использовании.

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

Вам нужно

let cell = cell as! CartStepMenuCell 
cell.seperator.isHidden = indexPath.item == arr.count - 1

. Ячейки collectionView удалены из очереди, поэтому вам нужно указать другой параметр или, как указано выше, также не ставить статические значения, указывать количество элементов в массиве, если вы добавляете или удаляете его из массива.последний пункт - 1 неповрежденный

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