滚动

时间:2016-09-10 04:18:36

标签: ios firebase firebase-realtime-database

所以我正在学习iosfirebase,我的意思是他们如何联系以获取等等。

到目前为止,我有一个显示所有帖子的帖子表。

使用该应用的个人可以像照片一样喜欢Facebook,然后将其存储在用户表格中,如下所示:

enter image description here

每个ID对应一个帖子。

现在我遇到的问题是,当我加载新闻源并在后台上下滚动时,我会检查用户是否喜欢这篇文章,如果是这样,那么我将心脏图像填充到其他明智的地方,请将其留空如下所示:

enter image description here

当我说心脏空虚时,我的意思是它会变成白色而不是红色。

现在当我在模拟器上向上和向下滚动查看所有帖子时,似乎有一个延迟改变颜色,有时我不喜欢的帖子会有完整的心脏,然后突然变为空和反之亦然。

这是我的代码,我首先通过附加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 **

似乎是当我快速滚动时问题存在,然而慢慢地上下滚动它按预期工作......任何解决方案都可以解决这个问题吗?

0 个答案:

没有答案
相关问题