我正在使用Firebase在Instagram等社交应用上工作。用户在主屏幕和个人资料中共享照片的位置。我的问题是 user1 在主屏幕中喜欢用户2 图片2 并访问 user2&# 39; s 配置文件 picture2 的相似值在重新加载单元格之前仍然相同。
如果我向下滚动并返回 picture2 ,则正在重新加载单元格并且它具有正确的值。因为我在我的单元格中使用didSet {},其中提取类似值。但那是一种糟糕的用户体验。所以我的解决方案是每次都重新加载collectionView。
这对性能有害吗?或者还有其他问题吗?
答案 0 :(得分:2)
你可以这样做:
目标C
NSArray *visibleCells = [_tblWhoAreYou visibleCells];
for (WhoRUSWCell *cell in visibleCells) {
NSIndexPath *indexPath = [_tblWhoAreYou indexPathForCell:cell];
cell.imageStatus.image=[UIImage imageNamed:@"greenCircle.png"];
[cell setNeedsLayout]; // OR you can reload particular cell
}
Swift 3.0
var visibleCells: [Any] = self.tblWhoAreYou.visibleCells
for cell: WhoRUSWCell in visibleCells {
var indexPath: IndexPath? = self.tblWhoAreYou.indexPath(for: cell)
cell.imageStatus.image = UIImage(named: "greenCircle.png")
cell.setNeedsLayout() // OR you can reload particular cell
}
使用此功能,您可以直接更新图像而无需重新加载。您只需检查标记或其他任何内容,即可找到要更新的所选对象。