查找特定 UICollectionView 单元格的索引号

Find Index Number Of A Specific UICollectionView Cell

我有一个 UICollectionView returns 77 个单元格。我试图弄清楚如何指向特定的单元格,例如第 2 行第 4 列的单元格。为了满足我最基本的需求,我需要编写一个语句来执行此操作:

if cell[46] == cell[12] {
println("they match")
}

我不知道从哪里开始这个任务。我首先尝试打印我的 prepareForSegue 方法中使用的 indexPath,但它没有返回任何内容。

此集合视图正在使用动态单元格。让它们成为静态细胞会有什么不同吗?

如@jkaufman 所述,您需要使用一种方法从索引路径获取单元格。 func cellForItemAtIndexPath(_ indexPath: NSIndexPath) -> UICollectionViewCell? 是你需要的方法,你可以给它传递一个索引路径,它可以用一个部分和行索引来构造。从那里,您可以获得每个单元格,并在从 cellForItemAtIndexPath 中检索两个单元格后进行比较。

函数文档:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/#//apple_ref/occ/instm/UICollectionView/cellForItemAtIndexPath:

存在 collectionView?.visibleCells(),其中 returns [AnyObject] 您可以将其转换为 UICollectionViewCell 类型,这样您就可以获得屏幕单元格数组。然后你可以使用下标符号访问特定的单元格进行比较,但我仍然不认为直接比较单元格是最好的方法,如果你可以以这样一种方式存储你的数据,你可以轻松访问值而无需发出请求服务器,这将是您尝试完成的更好的方法。