Мне нужно отобразить массивы пользователей на UICollectionView
с информацией о пользователе 1 ячейка 1.
В зависимости от онлайн-статуса пользователя будет определяться, отображать ли онлайн-зеленую точку на каждой ячейке.
Моя основная проблема сейчас заключается в том, что когда я прокручиваю вниз, чтобы отобразить больше пользователей, некоторые зеленые точки в сети исчезают, а некоторые все еще остаются. Но при повторном использовании большего количества ячеек зеленая точка будет случайным образом отображаться на других ячейках. Что мне нужно сделать, чтобы все зеленые точки отображались правильно?
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if user.online != "online"{
cell2.onlineIcon.isHidden = true
}
}
@PPL отредактировал мой вопрос
Вот что такое пользовательский объект и ячейка2?
Пользовательский объект @PPL - это массив пользователей, поэтому cell2 будет отображать каждого пользователя в коллекции
Проверьте ответы, это правильно
@PPL спасибо, братан, простое решение поможет мне на день
Измените свой код cellForItemAt следующим образом:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if user.online != "online"{
cell2.onlineIcon.isHidden = true
} else {
cell2.onlineIcon.isHidden = false
}
}
Не могли бы вы принять ответ, если мой ответ вам подходит?
Как вы правильно сказали, ячейки используются повторно.
Когда вы устанавливаете значение элемента пользовательского интерфейса в предложении if
, вы должны добавить предложение else
, чтобы установить значение по умолчанию.
if user.online != "online" {
cell2.onlineIcon.isHidden = true
} else {
cell2.onlineIcon.isHidden = false
}
или намного проще в одной строке
cell2.onlineIcon.isHidden = user.online != "online"
Пожалуйста, поделитесь своим кодом