ios - 如何检索 cellForRow(位于 :) when tableview isn't visible

标签 ios swift uitableview unit-testing

我创建了一个包含所有 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/

相关文章:

ios - Tableview - 根据 sqlite 中的数据创建 numberOfSectionsInTableView

ios - swift 2.0 (XCode 7 beta 5) 中的拆分方法

swift - 如何使用一个变量/属性而不是将同一属性赋值三次?

ios - UITableViewCell subview 显示在单元格外部

ios - Swift:如何在 UITableView 中定位带标签的 UITextView?

ios - 在 Metal 中手动设置一维纹理

javascript - 在 iOS Safari 中使用 XHR 下载文件

ios - 使用自定义维度在初始化时布局单元格 subview

swift - 符合 CBCentralManagerDelegate 协议(protocol)

ios - UITableViewCell 不显示 Swift 中的内容