如何添加“加载更多”单元格,按下时会向tableview添加更多行?

时间:2017-02-27 22:42:44

标签: ios swift uitableview tableviewcell

我正在尝试创建一个tableview,最初只显示5个单元格加上“加载更多”单元格,当按下更多单元格时将显示。我正在下载JSON数据并将其拆分为3个数组,一个用于总数据,一个用于仅用于前5个单元格,另一个用于从总数据中减去前5个单元格数据后的剩余数据。

我在这里看到了这个问题:Load More Cells并尝试实施他们所做的但却收效甚微。这是我们到目前为止所做的 -

Storyboard

非常简单,直接的故事板,有2个不同的单元格,第一个是包含JSON数据的“测试单元格”,第二个是“展开单元格”,按下时应该显示剩余的单元格。这是我的代码到目前为止,我省略了很多,以保持这篇文章的简短,我正在收到一个错误标记:

  var castArray: [CastData?]? = []
  var first5CastArray: [CastData?]? = []
  var remainderCastArray: [CastData?]? = []

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    if let firstArray = first5CastArray {
      return firstArray.count + 1
    } else {
      return 0
    }
     }

  override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if indexPath.row < (first5CastArray?.count)! {
      let testCell = tableView.dequeueReusableCell(withIdentifier: "testCell", for: indexPath) as! TestCell

      testCell.castImageView.image = first5CastImageArray?[indexPath.row]
      return testCell

    } else {
      let expandCell = tableView.dequeueReusableCell(withIdentifier: "expandCell", for: indexPath) as! ExpandCell
      expandCell.moreLabel.text = "More"//Error here -fatal error: unexpectedly found nil while unwrapping an Optional value
      return expandCell
    }
  }

//Below code never tested because of fatal error from cellForRowAt indexPath!!!!!
      override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    if let remainderArray = remainderCastArray {

      for info in remainderArray {
        first5CastArray?.append(info)
      }
    }
expandCell.isHidden = true
       tableview.reload 
      }

我不能完全确定我是否以正确的方式进行此项工作,我们非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

返回故事板,再次选择该单元格,转到“属性检查器”标签,在expandCell字段中输入identifier