可能有两个不同阵列的两个原型单元,没有部分?

时间:2015-02-21 03:39:26

标签: ios swift tableview

我有一段时间试图实现这一目标,所以非常感谢任何帮助:

  • 第一个表是用户帖子,当选择一个项目时,第二个表格视图显示所选用户帖子,在此下面是该帖子的任何评论,如果有的话(如Facebook)。 / p>

  • 我有两个没有切片的原型细胞。

  • 我想从一个数组(userPost)
  • 输入第一行
  • 然后第二个原型单元格将包含来自单独注释数组的任何数据(如果有),这将是第一行之外的所有行。
    • 目前两个原型单元使用相同的自定义单元类和不同的出口,虽然我有第一个有两个自定义单元类,但它似乎没有使用我尝试的代码示例。
  • 我需要两个独立的数组,因为它们来自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;数组索引超出范围"。我此时只在数组中有一条注释。不确定这是否导致了这个问题。

数据存在,但它不会将其拉入。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

当然,这是可能的。在numberOfRowsInSection中,返回注释的计数(我假设你有数组中的那些)加上一个(对于帖子)。在cellForRowAtIndexPath中,使用if-else子句,如果indexPath.row等于零,则返回一种单元格,如果没有,则返回其他类型的单元格。