我有UICollection,其中有将是具有开关里面用于记录参加每个项目的学生数量的项目和。 我通过所有可见的单元格这样的循环。
for(attendancecollectionViewCell* cells in [[self collectionView] visibleCells]){
NSLog(@"The switch value : %c",cells.attendanceSwitchLabel.isOn);
}
但是,我经历了所有的细胞出席,而不仅仅是可见的细胞要循环。
您无法通过不可见的细胞循环,因为不存在这些细胞。 UICollectionView,像UITableView的,只要它们是屏幕之外重用细胞。 也就是说,如果你向下滚动,它需要已滚动关闭,并使用它的“新”电池即将被滚动到视图中的单元格。
如果你想保持状态为您的收藏中的条目,你必须从细胞自身单独存放。 例如,映射到indexPath.row值结构(或自定义NSObjects)的一个NSArray。
你一个更重要的问题具体是:什么是你想在你的for循环来实现?
让我知道如果你需要了解更多信息或示例代码。
斯威夫特4+
func getAllCells() -> [UICollectionViewCell] {
var cells = [UICollectionViewCell]()
// assuming tableView is your self.tableView defined somewhere
for i in 0...self.numberOfSections-1
{
for j in 0...self.numberOfItems(inSection: i) - 1
{
if let cell = self.cellForItem(at: NSIndexPath(row: j, section: i) as IndexPath) {
cells.append(cell)
}
}
}
return cells
}