UITableView indexPathForCell:在iOS10中使用Xcode8(Swift2.3)返回nil

Posted

技术标签:

【中文标题】UITableView indexPathForCell:在iOS10中使用Xcode8(Swift2.3)返回nil【英文标题】:UITableView indexPathForCell: return nil in iOS10 with Xcode8 (Swift2.3) 【发布时间】:2016-11-22 05:40:04 【问题描述】:

同样情况下,ios9 是 Good,但在 iOS10 中无法获取 cell 的 indexPath。

self.tableView.indexPathForCell(cell): nil

现在,我发现该单元格不在 iOS10 中的 visibleCells 中。 这就是问题所在。

【问题讨论】:

indexPathForCell return optional (NS)IndexPath? object 所以它可能会nil,显示你调用这个方法的代码。 在iOS9中条件相同,然后返回索引路径,但在iOS10中没有返回值。 【参考方案1】:

在 iOS10 中,cellForRowAtIndexPath 被提前调用。 那么,indexPathForCellnil,因为单元格不可见。

我找到的解决方案是这样的。

if #available(iOS 10, *) 
    indexPath = self.tableView?.indexPathForRowAtPoint(cell.center)

【讨论】:

以上是关于UITableView indexPathForCell:在iOS10中使用Xcode8(Swift2.3)返回nil的主要内容,如果未能解决你的问题,请参考以下文章

UItableview 单元格的动态高度与 UItableview 单元格内的 UItableview

UITableView

水平 UITableView 中的垂直 UITableView

如何与重叠显示的 UITableView 交互另一个 UITableView

在 UITableView 中的 UINib 中重新加载 UITableView

iOS小技能:1. 什么是UITableView? 2. UITableView如何展示数据