具有 indexpathforselectedrow 的数组逻辑

Array logic with indexpathforselectedrow

所以我正在尝试使用 indexpathforselectedrow 来掌握嵌套数组逻辑! 因此,我将使用示例来解释我的困惑。

我的第一个想法:假设我有

    var colors: array = [“red”,”orange”,”yellow”] 

在 table 视图中。
如果我得到橙色的 indexpathforselectedrow,该索引值是多少?我假设那将是 section = 0,row = 1,所以 [0][1]。那是正确的吗?或者因为这是一个简单的数组,该值是否只是一个值? 1?

其次,如果我有更高级的阵列(请告诉我这个阵列设置是否正确)

 var morecolor: [[“green”,”blue”,”teal”][“light green”, “dark green”] 
[“light blue”, “dark blue”][“light teal”, “dark teal”]]

如果我选择了绿色(第一个数组/数组 0)并想转至 light/dark 绿色数组、第二个数组(或第一个),我该怎么做?

T0 回答你的第一个问题,是的,你说这样的调用是正确的 return 第 0 节第 0 行的项目的索引路径,但实际上因为它是索引路径而不是常规整数表示行不表示为 1 2 3 4...等,而是 0 64 128 等...因此,为了获得 returned 的行,您可以使用 indexPath.row 其中 return 是所选行的 int 表示形式。

一个索引路径(NSIndexPath)由一个部分和一行组成。两者都是整数,从零开始。

您 table 中的第一个部分是第 0 部分,第二个部分是第 1 部分,以此类推。行也是如此。

您实现 numberOfSections 来告诉您想要多少个部分,并实现 numberOfRowsInSection 来告诉每个部分有多少行(该方法向您传递它需要行数的部分编号)。

通常,您有一个表示要显示的数据的模型,并且在 cellForRowAtIndexPath 中索引到该模型。

如果您有一个一维模型,比如说一个简单的颜色列表,您可能只有一个部分,并且行数与模型中的颜色一样多。对应于任何行的颜色类似于:

    model.colors[indexPath.row]

您可以忽略此处的部分,因为您知道它始终为零(您只有 1 个部分)。

如果您有一个二维模型,比如说一组主题,其中每个主题都包含几种颜色,那么您的部分将与主题一样多,行与每个主题中的颜色一样多。对应于任何行的主题和颜色如下:

    model.theme[indexPath.section].colors[indexPath.row]

许多 table 视图方法使用索引路径,因此了解它们的工作原理很有用。