我有一个集合视图,代表工人的每周计划。 当我初始化集合时,我将所有工作槽都设置为TRUE,这意味着所有集合项应该被填充为正常工作。
我现在正在尝试实现一个数据模型,它是一个表示每周计划的布尔数组,并将传递给集合视图。 我似乎无法找到迭代所有单元格并更新它们的方法。当我使用visibleCells()时,我得到一个空数组。
一些代码:
func updateShifts(schedule: WeeklySchedule, shift: Int){
print(self.collectionView!.visibleCells.count) // prints 0
for cell in self.collectionView!.visibleCells as! [SchedulePickupCell] {
cell.setWorking(isWorkingInput: false)
}
}
在代码中,SchedulepickupCell是我的自定义集合视图单元格。 这段代码位于我的班级内:
class ScheduleCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout
现在我不确定什么是可见单元格意味着,我经常在我的应用程序中看到所有项目,我想要的是迭代并将其isHidden属性更改为true。
答案 0 :(得分:1)
虽然self.collectionView!.visibleCells.count
应该包含所有可见的单元格,但我相信你应该采用不同的方法。
确保在func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
根据模型设置您的单元格,然后:
collectionView.reloadData()
答案 1 :(得分:0)
只是为了分享我的解决方案,正如Or Ron暗示我:
我在集合视图中创建了我的模型实例:
var schedule = [[false, false, false, false, false, false, false],
[false, false, false, false, false, false, false]]
然后我更改了func以更新班次:
func updateShifts(schedule: WeeklySchedule){
self.schedule = schedule
self.collectionView!.reloadData()
}
然后在func collectionView(_ collectionView:UICollectionView,cellForItemAt indexPath:IndexPath) - > UICollectionViewCell 函数我总是加载参考我的日程表数据