IndexPath.row对于静态单元格不是唯一的

时间:2016-04-27 16:51:00

标签: ios swift uitableview didselectrowatindexpath nsindexpath

我有一个带有静态单元格和节标题的TableViewController。我试着打电话给indexPath.row但是,它们并不是唯一的。例如

TableView:
- Header 1
  - Cell1  indexPath = 0
- Header 2
  - Cell2  indexPath = 0
  - Cell3  indexPath = 1
  - Cell4  indexPath = 2

获取行的唯一标识符的正确方法是什么?

因为使用这个make 2个单元格具有相同的indexPath

override func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {
   print(indexPath.row)

   if indexPath.row != 0 {
     return indexPath
   }

   return nil
}

2 个答案:

答案 0 :(得分:6)

你似乎忽略了indexPath.section。 section和row的组合唯一地定义了索引路径。一行在其部分中是唯一的。

答案 1 :(得分:2)

NSIndexPathrowsection组成,sectionrow的组合是唯一的 您的案例中的Cell1有indexPath.section == 0indexPath.row == 0 Cell2有indexPath.section == 1indexPath.row == 0