从一维数组中提取网格

时间:2010-11-28 12:37:32

标签: objective-c arrays grid

我有一个包含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开头。

1 个答案:

答案 0 :(得分:1)

正向转化:objectAtPosition(x,y) = array[columns*y + x]

提供x<columns && y<rows

向后转换:positionAtIndex(i) = (row=(i div columns), col=(i mod columns))

请注意,divmod对应于C语言中的整数运算符/%