我正在尝试使用此回调来检测何时可以重用单元格。根据文件,签名是:
optional func tableView(_ tableView: UITableView,
didEndDisplaying cell: UITableViewCell,
forRowAt indexPath: IndexPath)
但实际上,这并不是用Xcode 7.3和Swift编译的。我认为IndexPath应该是NSIndexPath并且必须删除_。所以我得到了:
@objc func tableView(tableView: UITableView,
didEndDisplaying cell: UITableViewCell,
forRowAt indexPath: NSIndexPath) {
然而,这从未被调用过。
出列函数被称为罚款(下图),表格无效:
@objc func tableView(tableView: UITableView,
cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
这意味着我的数据源工作正常。
我想知道这是否是API的一些不起作用的部分。
(P.S。我不记得为什么@objc在那里,但删除它并没有任何区别。)
答案 0 :(得分:3)
出列函数称为精细(下图),表格有效 否则:
@objc func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
这意味着我的数据源正常运行。
请注意,tableView(_:didEndDisplaying:forRowAt:)表示UITableViewDelegate
,而不是UITableViewDataSource
。我建议检查您的班级 是否符合UITableViewDelegate
。
另外,使用Xcode 7.3意味着你正在编写Swift 2.x,它应该是:
func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//...
}
在Swift 3中,它应该是:
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) {
// ...
}
希望这会有所帮助。