Попытка настроить UICollectionViewDiffableDataSource - PullRequest
0 голосов
/ 04 февраля 2020
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 Ответ

1 голос
/ 04 февраля 2020

Там должно быть намного больше кода, чем это. Вам нужно заполнить источник данных с возможностью разбора некоторыми данными . В противном случае количество элементов в представлении вашей коллекции равно нулю, и нет необходимости создавать какие-либо ячейки.

Типичный танец (обычно в viewDidLoad) будет go примерно таким:

// 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)
...