【问题标题】:Swift: Get value of multiple selected UICollectionViewCellsSwift:获取多个选定 UICollectionViewCells 的值
【发布时间】:2015-02-19 22:32:44
【问题描述】:

我有一个UICollectionViewmultipleSelection allowed。如何检索存储在每个选定单元格中的标签值?

如果我有三个单元格:“第一”、“第二”、“第三” 我选择了前两个,它会返回一个等于:["first", "second"] 的数组。

【问题讨论】:

  • 通过 indexPathsForSelectedItems 获取选定的索引路径,并使用该信息在后备存储中查找值。
  • 所以我从 indexPathsForSelectedItems 创建了一个数组,只是不完全确定如何访问数据。就像,我做不到 [indexPaths.row]。有任何想法吗? @钛诱饵

标签: ios swift uicollectionview uicollectionviewcell


【解决方案1】:

使用indexPathsForSelectedItems 访问所选项目。在上面的示例中,这应该返回一个数组,其中包含第 0 行和第 1 行的前两个索引路径(假设“第一”、“第二”和“第三”实际上是按这个顺序排列的)。遍历该数组并使用其中包含的每个 indexPath 来使用 cellForItemAtIndexPath: 抓取单元格。现在您已经获得了单元格,您可以通过将生成的单元格转换为 YourCustomCell 并访问 label 属性来获取标签。

编辑:@rdelmar 在下面的 cmets 中提出了一个很好的观点。您的第一选择应该始终是避免使用单元格作为信息来源,而是首先引用dataSource 为单元格提供信息。但是,如果您需要通过检查dataSource(调用单元格的方法之一等)无法解决的某些目的获取对单元格的引用,则上述步骤是可行的方法。

【讨论】:

  • 你不应该使用单元格来提取信息;单元格用于显示信息,而不是提供信息。您应该使用 indexPath.row 值作为您用来填充集合视图的数组的索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
相关资源
最近更新 更多