Ios 如何简单地用注释填充tableView?
我正在使用Firebase中每篇文章的评论数据向我的文章添加评论部分。我一直在阅读Firebase的教程、StackOverflow问题的答案和Youtube教程,但我仍然遇到一些问题。我正在使用FirebaseUI开源工具包。以下是我对Firebase的JSON:Ios 如何简单地用注释填充tableView?,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我正在使用Firebase中每篇文章的评论数据向我的文章添加评论部分。我一直在阅读Firebase的教程、StackOverflow问题的答案和Youtube教程,但我仍然遇到一些问题。我正在使用FirebaseUI开源工具包。以下是我对Firebase的JSON: "posts" : { "-LhjroYuwrmhENr78QEQ" : { "comments" : { "-LhjrqSlNDl49q-f2IvJ" : "How is it going t
"posts" : {
"-LhjroYuwrmhENr78QEQ" : {
"comments" : {
"-LhjrqSlNDl49q-f2IvJ" : "How is it going there?",
"-Lhjry5Q02nk3UDuwl1V" : "I would like some help with Firebase Apps",
"-LhjrzadaywBb2p2S63D" : "Do you think you can help me?"
},
"reports" : 0,
"text" : "Ryan Here",
"timestamp" : 1560950032828,
"title" : "Hey",
"userID" : "nyRBXSyyDhc1Qkypou0Iz0iMsyr1"
},
"comments" : {
"-LhjrqSlNDl49q-f2IvK" : {
"reports" : 0,
"timestamp" : 1560950040707,
"userID" : "nyRBXSyyDhc1Qkypou0Iz0iMsyr1"
},
"-Lhjry5Rr-DVxGdwgAhn" : {
"reports" : 0,
"timestamp" : 1560950071986,
"userID" : "nyRBXSyyDhc1Qkypou0Iz0iMsyr1"
},
"-LhjrzadaywBb2p2S63E" : {
"reports" : 0,
"timestamp" : 1560950078142,
"userID" : "nyRBXSyyDhc1Qkypou0Iz0iMsyr1"
}
}
}
}
我想填充我的tableView“commentsTable”,将每个注释作为一个唯一的单元格,并用注释文本填充标签。我在故事板中制作了一个带有标签的原型单元,然后尝试使用以下代码发布文本:
var post: Post?
override func viewDidLoad() {
super.viewDidLoad()
print(delegate!)
ref.child("posts").child("comments").observeSingleEvent(of: .value, with: {DataSnapshot in self.commentsTable})
newCommentLabel.delegate = self
let firebaseRef = Database.database().reference().child("posts").child("comments")
let query = firebaseRef.queryOrderedByKey() /*or a more sophisticated query of your choice*/
let dataSource = self.commentsTable.bind(to: query, populateCell: { (tableView: UITableView, indexPath: IndexPath, snapshot: DataSnapshot) -> UITableViewCell in
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let value = snapshot.value as! NSDictionary
self.query?.observe(.value, with: { snapshot in
})
cell.textLabel?.text = firebaseRef.text
return cell
})
}
目前,我在“let dataSource=…”行中有一个错误,它表示“类型为'UITableView'的值没有成员'bind'”。我不确定如何修复此错误。我的文本似乎与Firebase文档相同
我也不确定如何在tableView中显示所需的信息。以下是我迄今为止所尝试的:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let label = UILabel(frame: CGRect(x:0, y:0, width:200, height:50))
cell.addSubview(label)
return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 50
}
private func setMain() {
guard let post = self.post else {
return
}
我发现很难满足提出评论的所有必要条件。教程和文档似乎有点模糊或难以理解,因为在没有充分解释的情况下,需要大量的输入。我希望这里有人能帮我简化这个过程。谢谢你的帮助 我想你应该先下载所有的评论。将注释存储在数组或字典中。这是您的数据源。您肯定不想在ViewDidLoad中创建uitableview单元 然后,当您调用cellForRowAtIndexPath时,使用注释数据源(数组/dict)填充您创建的自定义单元格字段 numberOfRowsInSection应该是数据源的大小/计数