ios - 调用方法 reloadData()

标签 ios swift uicollectionview reloaddata

我的应用程序包含两个 collectionView , mainCollectionViewnestedCollectionView ,位于 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()

}

! 如果我滚动 mainCollectionViewnestedCollectionView 应该会更新(月份将会更改)。

我的问题:代码工作正常,但这里的 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/

相关文章:

swift - 快速根据屏幕尺寸自动调整应用程序大小

ios - 我无法在 swift 3 中将数据从模型类传递到 TableView ?

ios - 在 runBlock 发生后延迟 SKAction.sequence 中的下一个 Action (Swift)?

ios - 使用 SDWebImage 为 UICollectionView 可重用单元从路径加载图像 - Swift

ios - Swift 声明的问题

iphone - 带有 NSURLErrorDomain 错误 -999 的 weblock 错误

ios - UICollectionView - 图像是随机设置的

ios - 从非协议(protocol)类型 'UICollectionViewFlowLayout' 继承

ios - UIPageViewController 页面指示器位置

ios - 更改 Swift 中的导航栏按钮图标