代码之家  ›  专栏  ›  技术社区  ›  user142019

从一维数组中提取网格

  •  0
  • user142019  · 技术社区  · 15 年前

    我有一个有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 回复  |  直到 15 年前
        1
  •  1
  •   Mirek Kratochvil    15 年前

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

    假如 x<columns && y<rows

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

    注意 div 和 mod 对应于整数运算符 / 和 % C语言。

    推荐文章