查找特定UICollectionView单元的索引号

时间:2015-05-18 01:44:35

标签: ios swift uicollectionview

我有UICollectionView,返回77个单元格。我试图弄清楚如何指向一个特定的单元格,例如第2行第4列的单元格。为了将其归结为我的基本需求,我需要编写一个可以执行此操作的语句:

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

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

此集合视图使用动态单元格。将它们制成静电电池会有什么不同吗?

2 个答案:

答案 0 :(得分:1)

存在collectionView?.visibleCells(),它返回[AnyObject],您可以将其转换为UICollectionViewCell类型,这样您就可以获得一组屏幕上的单元格。然后你可以使用下标符号来访问特定的单元格进行比较,但我仍然不认为直接比较单元格是最好的方法,如果你能够以这样的方式存储你的数据,你可以轻松地访问这些值,而无需请求每次服务器,对于你想要完成的事情来说,这将是一个更好的方法。

答案 1 :(得分:0)

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

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