如何添加“加载更多”单元格,按下该单元格时会向表格视图添加更多行?
Posted
技术标签:
【中文标题】如何添加“加载更多”单元格,按下该单元格时会向表格视图添加更多行?【英文标题】:How to add a "Load More" cell that when pressed adds more rows to the tableview? 【发布时间】:2017-02-27 22:42:44 【问题描述】:我正在尝试创建一个表格视图,最初仅显示 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
我不完全确定我是否以正确的方式进行,感谢任何帮助!
【问题讨论】:
您确定您的 moreLabel 出口正确地从您的故事板链接到您的 expandCell 类? 是的,我刚刚检查过 检查你的单元格@SwiftyJD的标识符 单元格标识符正确,仍为nil 使用 if let in 从 UITableView 初始化单元格,看看是不是 tableView dequeue 的问题或问题与 UILabel 本身有关,使用if let expandCell = tableView.dequeueReusableCell(withIdentifier: "expandCell", for: indexPath) as? ExpandCell
【参考方案1】:
返回您的故事板,再次选择该单元格,转到“属性检查器”选项卡,在 identifier
字段中输入 expandCell
。
【讨论】:
以上是关于如何添加“加载更多”单元格,按下该单元格时会向表格视图添加更多行?的主要内容,如果未能解决你的问题,请参考以下文章
限制tableView中显示的单元格数量,滚动到最后一个单元格时加载更多单元格
使用 insertRowsAtIndexPaths 时的表视图单元格索引