Попытка настроить UICollectionViewDiffableDataSource
func configureDataSource() {
print("configure dataSource!!!")
dataSource = UICollectionViewDiffableDataSource
<Section, StoryItem>(collectionView: storyCollectionView) {
(collectionView: UICollectionView, indexPath: IndexPath, storyItem: StoryItem) -> UICollectionViewCell? in
print("try creating a collection view cell!")
Оператор печати, показывающий, что функция была вызвана, появляется в консоли, но код внутри { for UICollectionViewDiffableDataSource
не запускается.
Есть предложения по дальнейшему устранению неполадок? Спасибо!
1 ответ
Решение
Кода должно быть намного больше. Вам необходимо заполнить доступный источник данных некоторыми данными. В противном случае количество элементов в вашем представлении коллекции равно нулю, и нет необходимости создавать какие-либо ячейки.
Типичный танец (обычно в viewDidLoad
) будет выглядеть примерно так:
// make the data source
self.datasource = UICollectionViewDiffableDataSource<String,String>(collectionView:self.collectionView) {
cv,ip,s in
return self.makeCell(cv,ip,s) // return cell
}
// give it a supplementary view provider if you have headers/footers
self.datasource.supplementaryViewProvider = { cv,kind,ip in
return self.makeSupplementaryView(cv,kind,ip) // return view
}
// give the data source some data (here, my data is sitting in `sections`)
var snap = NSDiffableDataSourceSnapshot<String,String>()
for section in sections {
snap.appendSections([section.0])
snap.appendItems(section.1)
}
self.datasource.apply(snap, animatingDifferences: false)