我正在测试iOS15和UIKit的一些新功能。我遇到了一些问题,不知道如何解决。我没有更改该代码。这只是一段与 iOS 14 完美配合的代码,现在更新我的目标后,它会引发错误。
当我为dataSource返回类型为UICollectionElementKindSectionHeader的UICollectionView的自定义标头时,Xcode 崩溃。这是我的代码:
private func configureDataSource() {
dataSource = UICollectionViewDiffableDataSource<Section, Follower>(collectionView: collectionView, cellProvider: { (collectionView, indexPath, followers) -> UICollectionViewCell? in
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: FollowerCell.reuseId, for: indexPath) as! FollowerCell
cell.set(on: followers)
return cell
})
dataSource.supplementaryViewProvider = { (collectionView, kind, indexPath) in
let header = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader,
withReuseIdentifier: FollowersCollectionHeaderView.reuseId,
for: indexPath) as! FollowersCollectionHeaderView
header.set(with: self.user)
return header
}
}
日志说:
从 -collectionView:viewForSupplementaryElementOfKind:atIndexPath: 返回的视图与其正在使用的元素类型不匹配。当被问及元素类型“FollowersCollectionHeaderView”的视图时,数据源将注册为元素类型“UICollectionElementKindSectionHeader”的视图出队。
我确实将UICollectionElementKindSectionHeader 转换为FollowersCollectionHeaderView,因此我不确定这里有什么问题。
我已经观看了WWDC21 UIKit 中的新功能,但没有看到任何提及该特定代码的任何更改。
任何建议,在该代码中修复什么?