我有一段时间试图实现这一目标,所以非常感谢任何帮助:
第一个表是用户帖子,当选择一个项目时,第二个表格视图显示所选用户帖子,在此下面是该帖子的任何评论,如果有的话(如Facebook)。 / p>
我有两个没有切片的原型细胞。
我需要两个独立的数组,因为它们来自cloudkit中的两个不同的表。并且我不想同时拉取所有注释数据,因为拉动userPost数据以显示在第一个tableview中。
我已经找到了一些关于SO的示例问题,但没有一个适用于我的情况,因为它们略有不同。而且没有一个也快速。我可以使用各个部分,但是我不能在界面构建器中显示一个以上的部分,每个部分我可以有一个原型单元格。而且我真的不喜欢没有部分,因为我不需要头衔。
任何人在Swift中都有任何代码解决方案,特别是关于如何实现" numberOfRowsInSection"和" cellForRowAtIndexPath"?
我已经为" cellForRowAtIndexPath"尝试了这两个例子。没有运气:
// var cell: TableViewCell
if indexPath.row == 0 {
let cellPost = tableView.dequeueReusableCellWithIdentifier("CellPost", forIndexPath: indexPath) as TableViewCell
// custom cell class
let record = userPost[indexPath.row]
cellPost.postDescription.text = record.description
cellPost.userName.text = record.username
if record.postPic != nil {
cellPost.postPic.image = record.postPic!
}
cell = cellPost
} else {
let cellComment = tableView.dequeueReusableCellWithIdentifier("CellComment", forIndexPath: indexPath) as TableViewCell
let recordComment = commentResults[indexPath.row]
// could it be that its trying to subscript 1, but there's only data at 0?
cellComment.comment.text = recordComment.userComment
cellComment.commentUsername.text = recordComment.username
cell = cellComment
}
return cell
我试过这个,没有运气:
var identifier: String!
if indexPath.row == 0 {
identifier == "CellPost"
} else {
identifier == "CellComment"
}
// then I configure the cell using the identifier as parameter.
在我所尝试的部分中,我尝试过:
return feedResults.count + commentResults.count
//OR
return commentResults.count + 1
// OR
if commentResults.count > 0 && feedResults.count > 0 {
return feedResults.count + commentResults.count
} else {
return feedResults.count
}
我确实遇到的错误涉及第二个commentResults数组 - 或者说 - "不能索引空缓冲区"或者#34;数组索引超出范围"。我此时只在数组中有一条注释。不确定这是否导致了这个问题。
数据存在,但它不会将其拉入。非常感谢任何帮助!
答案 0 :(得分:0)
当然,这是可能的。在numberOfRowsInSection中,返回注释的计数(我假设你有数组中的那些)加上一个(对于帖子)。在cellForRowAtIndexPath中,使用if-else子句,如果indexPath.row等于零,则返回一种单元格,如果没有,则返回其他类型的单元格。