2015-10-14 65 views
0

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

我的第一个想法:可以说我有

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

在表视图。
如果我得到了orange的indexpathforselectedrow,那么这个索引值是多少?我假设这将是section = 0,row = 1,so [0] [1]。那是对的吗?或者因为这是一个简单的数组,这个值是否只是一个值? 1?

其次,如果我有一个更先进的阵列(请让我知道如果这个阵列设置是正确的)

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

,如果我选择了绿色(第一阵列/阵列0),想Segue公司光/深绿色数组,第二个数组(或第一个),我将如何去做这件事?

回答

1

索引路径(NSIndexPath)由段和行组成。两者都是整数,基于零。

表中的第一部分是第0部分,第2部分是1等。

您实现numberOfSections来告诉您需要多少节,numberOfRowsInSection指出每节中有多少行(该方法向您传递它需要的行数)。

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

如果您有一维模型,比如说一个简单的颜色列表,那么您可能只有一个部分,以及与模型中的颜色一样多的行。对应于任何行的颜色会是这样的:

model.colors[indexPath.row] 

你可以在这里忽略部分,因为你知道这是始终为零(你只有1节)。

如果您有一个二维模型,比如说一组主题,每个主题都由多种颜色组成,那么您将拥有与主题一样多的部分,以及每个主题中的颜色。对应于任何行的主题和颜色会是这样的:

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

许多表视图方法使用索引路径,所以这是非常有用知道他们是如何工作的。

0

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