我需要在UICollectionView
上显示1个单元格1用户信息的用户数组。
根据用户在线状态,将确定是否在每个单元格上显示在线绿点。
我现在的主要问题是当我向下滚动以显示更多用户时,在线绿点有些消失,有些仍将保留。但是当更多的单元被重用时,绿点将随机显示在其他单元上。我应该实施什么来保持所有绿点正确显示?
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if user.online != "online"{
cell2.onlineIcon.isHidden = true
}
}
答案 0 :(得分:0)
使用以下内容更改您的cellForItemAt代码:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if user.online != "online"{
cell2.onlineIcon.isHidden = true
} else {
cell2.onlineIcon.isHidden = false
}
}
答案 1 :(得分:0)
正如您所提到的那样,细胞会被重复使用。
在if
子句中设置UI元素的值时,必须添加else
子句以设置默认值
if user.online != "online" {
cell2.onlineIcon.isHidden = true
} else {
cell2.onlineIcon.isHidden = false
}
或更简单的一行
cell2.onlineIcon.isHidden = user.online != "online"