我正在使用Firebase开发Instagram之类的社交应用。用户在主屏幕和个人资料中共享照片的位置。我的问题是,当 user1 喜欢 user2的 picture2 并访问 user2的配置文件时,访问 user2的配置文件时,该 picture2仍然保持相同的值,直到再次加载相同的单元格。

如果我向下滚动并返回 picture2,单元将重新加载,它将具有正确的值。因为我在单元格中使用didSet {},所以获取类似值的位置已经完成。但这是糟糕的用户体验。所以我的解决方案是每次都重新加载collectionViews。

这对性能来说是一件坏事吗,还是有其他问题?

最佳答案

您可以按照以下方式进行操作:

objective-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
}

使用此功能,您可以直接直接更新映像,而无需重新加载。您只需要检查标签或其他任何内容,即可找到要更新的所选对象。

08-05 23:31