Header uicollectionview 控制器中的部分。超出范围
Header section in the uicollectionview controller. out of range
我正在使用 viewForSupplementaryElementOfKind
函数应用来自 uicollectionview
控制器的 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()
成功完成后,您可以重新加载集合视图以获取输出。请按照以下步骤
- 调用方法
callVideo3API()
- 通过 CollectionView 返回零使
CollectionView
为空
DataSource [func numberOfSections(in collectionView:
UICollectionView) -> Int
, func collectionView(_ collectionView:
UICollectionView, numberOfItemsInSection section: Int) -> Int
]
- (可选) 在执行
callVideo3API()
时,您可以显示一个 activity 指标CollectionView 的位置
- 成功完成
callVideo3API()
后你可以重新加载
CollectionView
具有相应的数据源值。这一次
将正常工作 :-) (如果你放置 activity 指标,请不要忘记在 api 调用成功后删除)
我正在使用 viewForSupplementaryElementOfKind
函数应用来自 uicollectionview
控制器的 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()
成功完成后,您可以重新加载集合视图以获取输出。请按照以下步骤
- 调用方法
callVideo3API()
- 通过 CollectionView 返回零使
CollectionView
为空 DataSource [func numberOfSections(in collectionView: UICollectionView) -> Int
,func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
] - (可选) 在执行
callVideo3API()
时,您可以显示一个 activity 指标CollectionView 的位置 - 成功完成
callVideo3API()
后你可以重新加载CollectionView
具有相应的数据源值。这一次 将正常工作 :-) (如果你放置 activity 指标,请不要忘记在 api 调用成功后删除)