IndexPath.row 对于静态单元格不是唯一的
Posted
技术标签:
【中文标题】IndexPath.row 对于静态单元格不是唯一的【英文标题】:IndexPath.row is not unique for Static Cells 【发布时间】:2016-04-27 16:51:00 【问题描述】:我有一个带有静态单元格和节标题的 TableViewController。我试着打电话给indexPath.row
但是,它们不是唯一的。例如
TableView:
- Header 1
- Cell1 indexPath = 0
- Header 2
- Cell2 indexPath = 0
- Cell3 indexPath = 1
- Cell4 indexPath = 2
获取行的唯一标识符的正确方法是什么?
因为使用这个使 2 个单元格具有相同的 indexPath
override func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath?
print(indexPath.row)
if indexPath.row != 0
return indexPath
return nil
【问题讨论】:
【参考方案1】:您似乎忽略了indexPath.section
。部分和行的组合唯一地定义了索引路径。行在其部分内是唯一的。
【讨论】:
【参考方案2】:NSIndexPath
由row
和section
组成,section
和row
的组合是唯一的
在您的情况下,Cell1 具有 indexPath.section == 0
和 indexPath.row == 0
Cell2 有indexPath.section == 1
和indexPath.row == 0
【讨论】:
那么例如对于Cell2,我应该使用if indexPath.section == 1 && if indexPath.section == 0
吗?
仅供参考 - NSIndexPath
的 section
和 row
实际上是 UITableView
提供的扩展。 UICollectionView
添加了 section
和 item
。原来的NSIndexPath
没有这样的属性。它只有一组索引。
@senty 是的,对于 Cell2,它将是第 1 节,第 0 行。以上是关于IndexPath.row 对于静态单元格不是唯一的的主要内容,如果未能解决你的问题,请参考以下文章
UTableView 当前可见单元格 indexPath.row
如何在特定 indexpath.row 上显示自定义 tableviewcell
根据所选的 indexpath.row 更改 UICollectionView 单元格图像视图
UICollectionViewCell 未在 indexpath.row == 0 上绘制单元格