UICollectionView控制器中的标题部分.超出范围



我正在使用viewForSupplementaryElementOfKind函数应用uicollectionview控制器的标题部分。但是,在viewDidAppear API的异步解析之前,将行索引加载到viewForSupplementaryElementOfKind函数中并脱离范围。我该怎么办?

这是我的代码...

    override func viewDidAppear(_ animated: Bool) {
        callVideo3API()
    }
    override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
        switch kind {
        case UICollectionElementKindSectionHeader:
            let row1 = self.list[0]
            let row2 = self.list[1]
            let row3 = self.list[2]
    let headerSection = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "Header", for: indexPath) as! HeaderSection

        headerSection.nameLabel01.text = row1.nickname
        headerSection.nameLabel02.text = row2.nickname
        headerSection.nameLabel03.text = row3.nickname

        return headerSection
    default:
        assert(false, "Unexpected element kind")
    }
}

您必须等到callVideo3API()完成。成功完成callVideo3API()后,您可以重新加载收集视图以获取输出。请按照以下步骤

  1. 呼叫方法callVideo3API()
  2. 通过 Collection View返回零来使CollectionView空DataSource [ func numberOfSections(in collectionView: UICollectionView) -> Intfunc collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int ]
  3. (可选) callVideo3API()执行时您可以在Collection View
  4. 上显示活动指示器
  5. 成功完成callVideo3API()后,您可以重新加载 CollectionView具有相应的数据源值。这次将没有任何故障的情况下工作:-) (如果您放置活动指示器,请在成功呼叫后不要忘记删除)

相关内容

  • 没有找到相关文章

最新更新