如何让tableView在tableView PT.2的顶部显示new或update元素

时间:2017-10-28 15:46:01

标签: arrays swift uitableview firebase cells

我似乎无法从新用户发送新消息或已从tableview中的用户发送的新消息与大多数消息传递应用程序一样。我之前已经问过这个问题,并尝试按照链接中的说明进行操作,这个链接可能会有人发送给我(How do you properly order data from Firebase chronologically),但无论我尝试什么,我仍然无法获得所需的效果< / p>

func getChatsFeed(){
//following the links instruction "timeStamp" is suppose help return fireBase children in reverse order. "atValue: time" is a value for the time when my viewDidload.
    let queryChats = Database.database().reference().queryOrdered(byChild: "timeStamp").queryEnding(atValue: time, childKey: "timeStamp")

    queryChats.observe(.childAdded) { (snapshot) in

        if let snapvalue = snapshot.value as? Dictionary<String,Any>, let
            sender = snapvalue["sender"] as? String, let receiver =
            snapvalue["receiver"] as? String, let message = snapvalue["messageBody"] as?
            String, let key = snapvalue["key"] as? String, let timeStamp = snapvalue["timeStamp"] as? String{

            let newMessage = FeedMessage(sender: sender, receiver: receiver, messageBody: message, key: key, timeStamp: timeStamp)

            feedUpdate.append(newMessage)
            self.chatsTableView.reloadData()

        }


    }
}

我所包含的链接因为解决了很多StackOverflow用户的问题而获得了相当多的赞誉,所以也许我搞砸了某个地方,并不完全知道所有不同的Firebase方法,这可能就是这种情况。有人指点吗?

1 个答案:

答案 0 :(得分:0)

使用其他方法,您已经将数据加载到feedUpdate中,只需执行此操作:

    chatsTableView.reloadData()
    let indexPath:IndexPath = IndexPath(row:0, section:0)
    chatsTableView.scrollToRow(at: indexPath, at: UITableViewScrollPosition .top, animated: true)