所以我正在尝试使用 indexpathforselectedrow 来掌握嵌套数组逻辑! 因此,我将使用示例来解释我的困惑。
我的第一个想法:可以说我有
var colors: array = [“red”,”orange”,”yellow”]
在表格 View 中。
如果我得到橙色的 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)并想转至浅/深绿色数组、第二个数组(或第一个),我该怎么做?
最佳答案
索引路径(NSIndexPath)由一个部分和一行组成。两者都是整数,从零开始。
表格中的第一部分是部分 0,第二部分是部分 1,依此类推。行也是如此。
您实现 numberOfSections 来告诉您想要多少个部分,并实现 numberOfRowsInSection 来告诉每个部分中有多少行(该方法向您传递它需要的行数的部分编号)。
通常,您有一个表示要显示的数据的模型,并在 cellForRowAtIndexPath 中为该模型建立索引。
如果您有一个一维模型,比如说一个简单的颜色列表,您可能只有一个部分,并且行数与模型中的颜色一样多。对应于任何行的颜色是这样的:
model.colors[indexPath.row]
您可以忽略此处的部分,因为您知道它始终为零(您只有 1 个部分)。
如果您有一个二维模型,例如一组主题,每个主题都包含多种颜色,那么您将拥有与主题一样多的部分,以及每个主题中的颜色一样多的行。对应于任何行的主题和颜色如下:
model.theme[indexPath.section].colors[indexPath.row]
许多 TableView 方法使用索引路径,因此了解它们的工作原理很有用。
关于ios - 具有indexpathforselectedrow的数组逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116774/