我有一个包含12个值的数组,我需要在这样的网格中显示这些值(总是4列,3行):
1 | 2 | 3 | 4
----------------------
5 | 6 | 7 | 8
----------------------
9 | 10 | 11 | 12
我循环遍历网格,我有两个坐标:列和行。
我如何知道哪个索引属于哪个行和列?我尝试了几件事,但他们没有工作:
objectAtIndex: (row + 1) * (column + 1) - 1
objectAtIndex: row + column
等...
行和列索引以0开头。
答案 0 :(得分:1)
正向转化:objectAtPosition(x,y) = array[columns*y + x]
提供x<columns && y<rows
向后转换:positionAtIndex(i) = (row=(i div columns), col=(i mod columns))
请注意,div
和mod
对应于C语言中的整数运算符/
和%
。