indexpathforselectedrow

时间:2015-10-14 04:43:23

标签: ios arrays swift logic didselectrowatindexpath

所以我试图使用indexpathforselectedrow来掌握嵌套数组逻辑! 因此,不好用例子来解释我的困惑。

我的第一个念头:让我说我有

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

在表格视图中。
如果我得到了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)并且希望偏向浅/深绿色数组,第二个数组(或第一个),我将如何进行此操作?

2 个答案:

答案 0 :(得分:1)

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

表中的第一部分是第0部分,第二部分是1,等等。对于行。

你实现numberOfSections来告诉你想要多少个部分,使用numberOfRowsInSection来告诉你每个部分有多少行(该方法会传递你需要行数的部分编号)。

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

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

    model.colors[indexPath.row]

你可以忽略这里的部分,因为你知道它始终为零(你只有1个部分)。

如果你有一个二维模型,说一组主题,每个主题由几种颜色组成,你将拥有与主题一样多的部分,以及每个主题中的颜色行。与任何行对应的主题和颜色将类似于:

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

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

答案 1 :(得分:0)

T0回答你的第一个问题,是的,你正确地说这样的调用会返回第0部分第0行的项目的索引路径,但实际上是因为它是一个索引路径而不是一个常规的整数表示,这些行不表示为1 2 3 4 ......等等,而是0 64 128等...因此,为了获得返回的行,您可以使用{{1}来访问它返回所选行的int表示形式。