尝试配置 UICollectionViewDiffableDataSource
Trying to configure 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
中的代码没有 运行.
关于下一步要解决的问题有什么建议吗?非常感谢!
需要的代码比这多得多。您需要使用一些 数据 填充 可比较数据源。否则,您的集合视图中的项目数为零,无需生成任何单元格。
一个典型的舞蹈(通常在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)
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
中的代码没有 运行.
关于下一步要解决的问题有什么建议吗?非常感谢!
需要的代码比这多得多。您需要使用一些 数据 填充 可比较数据源。否则,您的集合视图中的项目数为零,无需生成任何单元格。
一个典型的舞蹈(通常在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)