Swift,UIView到2D数组中的位置

时间:2018-01-25 13:50:00

标签: ios arrays swift uiview

我目前正在开展一个项目,我在这里有一个网格。 Grid。 我曾计划让网格成为10 x 10 UIImagesviews,或UIView's。这样每个方块都可以包含一个图像。

我还有一个包含0的2D阵列:

<template xmlns="http://marklogic.com/xdmp/tde">
  <context>//*[text()]</context>
    <vars>
      <var>
        <name>EX</name>
        <val>"http://example.org/ex#"</val>
      </var>
    </vars>
  <triples>
    <triple>
      <subject>
        <val>sem:iri( fn:base-uri(.) )</val>
      </subject>
      <predicate>
        <val>sem:iri( $EX || fn:name(.) )</val>
      </predicate>
      <object>
        <val>fn:data( . )</val>
      </object>
    </triple>
  </triples>
</template>

我的问题是,如何让我的视图返回网格的行和列。当用户选择一个正方形?这样我就可以在那个位置将0更改为1。

我的初学者想法是使用touchesbegan,并返回x.y.屏幕的坐标,并尝试将它们与行和列匹配。但我希望有一种更可靠的方式来做到这一点,或者只是为了听到其他选择?。

谢谢 - 尼古拉

1 个答案:

答案 0 :(得分:0)

这似乎只是UICollectionView。你的&#34; 2DArray&#34;是集合视图的dataSource,您可以在UICollectionViewDelegate中检测

optional func collectionView(_ collectionView: UICollectionView, 
             didSelectItemAt indexPath: IndexPath)

https://developer.apple.com/documentation/uikit/uicollectionviewdelegate/1618032-collectionview

为此,您需要使用集合视图的布局进行一些操作,以便每行有10个单元格,并且该部分中有10x10个单元格。如果它符合您的需求,您可以选择10个部分,每部分10个细胞。 (第一种情况似乎比你描述的更好)