gpt4 book ai didi

ios - uicollectionview Controller 中的 header 部分。超出范围

转载 作者:行者123 更新时间:2023-11-29 00:28:31 32 4
gpt4 key购买 nike

我正在使用 viewForSupplementaryElementOfKind 函数来应用来自 uicollectionview Controller 的 header 部分。但是,在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() 成功完成后,您可以重新加载 Collection View 以获取输出。请按照以下步骤操作

  1. 调用方法callVideo3API()
  2. 通过 CollectionView 返回零使 CollectionView 为空数据源 [func numberOfSections(在collectionView中:
    UICollectionView) -> Int
    , func collectionView(_ collectionView:
    UICollectionView,numberOfItemsInSection 部分:Int) -> Int
    ]
  3. (可选)在执行callVideo3API()时,您可以在 CollectionView 的位置显示事件指示器
  4. callVideo3API() 成功完成后,您可以重新加载CollectionView 具有相应的数据源值。这一次将正常工作 :-) (如果您放置事件指示器,请不要忘记在成功调用 api 后将其删除)

关于ios - uicollectionview Controller 中的 header 部分。超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447046/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com