gpt4 book ai didi

ios - UITableViewCell 被空数据源数组卡住

转载 作者:行者123 更新时间:2023-11-28 07:35:19 25 4
gpt4 key购买 nike

我向服务器发出请求以获取数据,然后将其数据设置到我的数组中以处理 TableView。

尽管服务器响应是一个数据源数组也是一个,但一个单元格或几个单元格被卡住时有时会发生问题,但单元格无论如何都会堆叠。在我关闭之前仍然在屏幕上。 tableView contentOffset 也发生了变化:

enter image description here

The screenshot shows froze tableViewCell. But dataSource array is an empty, numberOfRowsInSection in section also equal to 0.

一些细节:

  • tableView.reloadData() 从主线程调用;
  • ViewController 位于 TabBarViewController 中;
  • 我在 Retain 周期检查我的模型对象类,似乎一切正常;
  • 我使用 xib 作为单元格。该单元格具有自定义内容 View 。 Cell 类中的所有 IBOutlets 都有弱引用。

请帮助我理解我哪里错了

编辑:

extension ViewController: UITableViewDataSource {

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
guard let numberOfRowsInSection = items?.count else {
messageLabel?.text = messageText
return 0
}

return numberOfRowsInSection
}

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

guard let cell = tableView.dequeueReusableCell(withIdentifier: "Identifier", for: indexPath) as? CustomTableViewCell else { return UITableViewCell() }

// Cell settings

return cell

}
}

最佳答案

我的猜测是你缺少数据源方法

optional func numberOfSections(in tableView: UITableView) -> Int

https://developer.apple.com/documentation/uikit/uitableviewdatasource/1614860-numberofsections

The number of sections in tableView. The default value is 1.

当您的数组中有 0 个项目时,这应该会破坏您的实现。根据您的结构,它可能看起来类似于

override func numberOfSections(in tableView: UITableView) -> Int {
guard let arr = items else { return 0 }
return arr.count == 0 ? 0 : 1
}

关于ios - UITableViewCell 被空数据源数组卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53316290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com