所以我正在学习ios
和firebase
,我的意思是他们如何联系以获取等等。
到目前为止,我有一个显示所有帖子的帖子表。
使用该应用的个人可以像照片一样喜欢Facebook,然后将其存储在用户表格中,如下所示:
每个ID对应一个帖子。
现在我遇到的问题是,当我加载新闻源并在后台上下滚动时,我会检查用户是否喜欢这篇文章,如果是这样,那么我将心脏图像填充到其他明智的地方,请将其留空如下所示:
当我说心脏空虚时,我的意思是它会变成白色而不是红色。
现在当我在模拟器上向上和向下滚动查看所有帖子时,似乎有一个延迟改变颜色,有时我不喜欢的帖子会有完整的心脏,然后突然变为空和反之亦然。
这是我的代码,我首先通过附加post.postKey
来调用firebase以检索用户链接到他的内容。 let likesRef = FIRDatabase.database().reference().child("Users").child((FIRAuth.auth()?.currentUser?.uid)!).child("Likes").child(post.postkey)
likesRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
if let doesNotExist = snapshot.value as? NSNull {
self.likedImage.image = UIImage(named: "heart-empty")
} else {
self.likedImage.image = UIImage(named: "heart-full")
}
})
有人可以解释为什么心脏形象行为不端吗?
更新
根据要求,请参阅下面的cellForRowAtIndexPath
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let post = posts[indexPath.row]
if let cell = tableView.dequeueReusableCellWithIdentifier("PostCell") as? PostCell {
cell.request?.cancel()
var img: UIImage?
if let url = post.imageUrl{
img = FeedVC.imageCache.objectForKey(url) as? UIImage
}
cell.configureCell(post, img: img)
return cell
}
else{
return PostCell()
}
}
函数cell.ConfigureCell是此心脏代码所在的位置。
**更新2 **
似乎是当我快速滚动时问题存在,然而慢慢地上下滚动它按预期工作......任何解决方案都可以解决这个问题吗?