所以我试图使用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)并且希望偏向浅/深绿色数组,第二个数组(或第一个),我将如何进行此操作?
答案 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表示形式。