我正在尝试创建一个tableview,最初只显示5个单元格加上“加载更多”单元格,当按下更多单元格时将显示。我正在下载JSON数据并将其拆分为3个数组,一个用于总数据,一个用于仅用于前5个单元格,另一个用于从总数据中减去前5个单元格数据后的剩余数据。
我在这里看到了这个问题:Load More Cells并尝试实施他们所做的但却收效甚微。这是我们到目前为止所做的 -
非常简单,直接的故事板,有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
}
我不能完全确定我是否以正确的方式进行此项工作,我们非常感谢您的帮助!
答案 0 :(得分:0)
返回故事板,再次选择该单元格,转到“属性检查器”标签,在expandCell
字段中输入identifier
。