【问题标题】:iOS indexpath.row and indexpath.sectioniOS indexpath.row 和 indexpath.section
【发布时间】:2014-10-25 01:29:10
【问题描述】:

所以我有一个 UITableView 并设置了联系人列表。所有联系人都根据他们的名字分成几个部分,并按字母顺序排列。我正在努力让人们选择他们想要添加的人。在我的didSelectRowAtIndexPath 方法中,当我使用 indexPath.section 或 indexPath.row 时,我不断得到错误的结果。下面是我使用 .row 和 .section 得到的结果。

Name | Section | Row | Cell index
---------------------------------
Adi  | 0       | 0   | 0
Andy | 0       | 1   | 1
Ben  | 1       | 0   | 2
Jay  | 2       | 0   | 3
Jim  | 2       | 1   | 4
Joe  | 2       | 3   | 5

无论如何我可以获取实际的单元格索引以使用didSelectRowAtIndexPath 方法吗?

【问题讨论】:

  • 唯一看起来不对的是“Joe”。乔应该是第 2 节第 2 行。你确定你记对了吗?
  • 你是如何设置数据源的?你的代码在tableView:cellForRowAtIndexPath:?只需进行反向计算,或者向您的单元格(自定义单元格?)添加索引并读取它。

标签: objective-c uitableview


【解决方案1】:

这是绝对正确的。索引路径包含行索引范围0...n PER 索引部分(也包括范围0...n)。

这允许您创建一个数组结构,如

@(@(@"section 0", @"section 0" @"section 0"), @(@"section 1", @"section 1"))

【讨论】:

    【解决方案2】:

    选项 1:将数据设置为数组数组。顶部数组中的每个元素都匹配一个节,节数组中的每个元素都匹配一行。

    选项 2:编写一个方法,通过将前面部分中的所有行相加并调整索引路径中的行来计算部分和行的单元格索引。

    【讨论】:

      猜你喜欢
      • 2018-03-27
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2020-12-20
      相关资源
      最近更新 更多