我的应用程序包含两个 collectionView , mainCollectionView
和 nestedCollectionView
,位于 mainCollectionViewCell
中。
就像iPhone日历应用程序一样,mainCollectionView
中的每个单元格都有nestedCollectionView
代表一个月(单元格的数量将是该月的天数) .
class cell_Main:UICollectionViewCell{
let collectionView:UICollectionView = {
let cv = nestedCollectionView()
cv.backgroundColor = .white
return cv
}()
要在月份发生变化时更新nestedcollectionView
,我在方法内使用了nestedcollectionView.reloadData()
(属于mainCollectionView):
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell_main", for: indexPath) as! cell_Main
let nested_CollectionView = cell.collectionView as! nestedCollectionView
.
.
.
nested_CollectionView.reloadData()
}
! 如果我滚动 mainCollectionView
,nestedCollectionView
应该会更新(月份将会更改)。
我的问题:代码工作正常,但这里的 reloadData()
是正确的方法吗?它是否需要昂贵的 CPU 工作,应用程序是否使用了太多 CPU?
最佳答案
我没有使用代表一年中月份的嵌套 Collection View ,而是尝试制作一个 Main CollectionView ,并且部分的数量将为 12 (月份数),每个部分代表月,并且在每个部分中 numberOfItemsInSection
将是月份天数。任何更新都可以在这里(不使用 reloadData()
):
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
}
.最后,当我们向下滚动到末尾部分时,我们将调用 reloadData()
来更新新的 numberOfSections
并移至下一年。
关于ios - 调用方法 reloadData(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57156965/