我创建了一个包含所有 UITableView 协议(protocol)方法的类。我在 ViewController 中成功地使用了它,该 ViewController 的场景中有一个 tableview。
将所有 tableview 代码放在不同的类中的好处是我应该能够对 tableview 方法进行单元测试。我遇到的问题是,当我调用 cellForRow(at:)
时,它返回一个 nil
单元格。
我可以在 tableview 类的 cellForRow(at:)
中放置一个断点,然后在它之前查看 return cell
该单元格是否有效。一旦我离开 cellForRow(at:)
并返回单元测试,返回的单元格为 nil。
发生这种情况是因为没有一个单元格是可见的。此线程 [ Table view's `cellForRow(at:)` is `nil` in Unit Test ] 解决了这个特定案例的问题,但没有找到解决方案。
当表格 View /单元格不可见时,是否有某种方法可以从 cellForRow(at:)
返回单元格?
最佳答案
您的假设是正确的,UITableView.cellForRow(at:)
方法不会返回单元格,如果它在那一刻不可见的话。
与此同时为什么不使用 UITableView 的数据源并调用 UITableViewDataSource.tableView(_:cellForRowAt:)
?我认为它完全可以满足您的需求并返回单元格,而不考虑实际的 UITableView
位置。
关于ios - 如何检索 cellForRow(位于 :) when tableview isn't visible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43648029/