Элемент ячейки UIcollectionview скрыт или даже не удаляется - PullRequest
0 голосов
/ 01 мая 2018

Мне нужно отобразить массивы пользователей на UICollectionView с 1 ячейкой на 1 информацию о пользователе. В зависимости от статуса пользователя в сети, будет определяться, показывать ли зеленую точку онлайн в каждой ячейке. Моя главная проблема сейчас, когда я прокручиваю вниз, чтобы отобразить больше пользователей, некоторые зеленые точки онлайн исчезают, а некоторые остаются. Но когда повторно используется больше ячеек, зеленая точка будет случайным образом отображаться на других ячейках. Что я должен реализовать, чтобы все зеленые точки отображались правильно?

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    if user.online != "online"{
        cell2.onlineIcon.isHidden = true
    }
}

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Как вы правильно сказали, ячейки используются повторно.

Когда вы устанавливаете значение элемента пользовательского интерфейса в предложении if, вы должны добавить предложение else, чтобы установить значение по умолчанию

if user.online != "online" {
   cell2.onlineIcon.isHidden = true
} else {
   cell2.onlineIcon.isHidden = false
}

или намного проще в одну строку

cell2.onlineIcon.isHidden = user.online != "online"
0 голосов
/ 01 мая 2018

Измените код cellForItemAt следующим образом:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    if user.online != "online"{
        cell2.onlineIcon.isHidden = true
    } else {
        cell2.onlineIcon.isHidden = false
    }

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