我正在整个互联网上搜索,我不确定是否可以完成,因为我是iOS开发的新手。我想当我的应用开始只显示标题的第一部分和单元格时。然后,当我单击一个单元格时,我想从标题和单元格等的第2部分下面显示给我,我已经正确设置了单元格和部分,也可以选择每个单元格并正确更改背景颜色等。我的应用程序运行了,但它同时显示了所有部分和单元格。
例如:
应用启动,我只能看到第1部分:
第1部分标题
单元1 单元2 单元3
然后我单击单元格1,我必须只看到第1部分和第2部分:
第1部分标题
单元1 单元2 单元3
第2部分标题
cell1 cell2 cell3 cell4
然后单击单元格4,我必须仅看到第1部分,第2部分和第3部分:
第1部分标题
单元1 单元2 单元3
第2部分标题
cell1 cell2 cell3 cell4
第3部分标题
单元格 单元格
等
我发现我必须使用下面提到的这些方法,但是我不知道如何在我的收藏夹中实现显示/隐藏部分。
这是我的代码:
dc_eximconfig_configtype='internet'
…
dc_local_interfaces='127.0.0.1 ; ::1'
答案 0 :(得分:0)
如果要对数据进行建模,这将很有帮助,以便您可以跟踪应隐藏的部分(以及单元格背景色)。也许您已经是,但我仅举一个例子:
class MyModelSection {
var items = [MyModel]()
var hidden = true
}
class MyModel {
var backgroundColor: UIColor?
}
class MyViewController: UICollectionViewController: {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var dataSource = [MyModelSection]()
var visibleDataSource: [MyModelSection] {
return dataSource.filter { !$0.hidden }
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
然后,您可以使用UICollectionViewDataSource
协议来确定应显示的部分
func numberOfSections(in collectionView: UICollectionView) -> Int {
return visibleDataSource.count
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return visibleDataSource[section].items.count
}
在列出的功能中,我想您会使用:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// Not sure how your logic for picking which one gets displayed...
guard visibleDataSource.count >= indexPath.section else {
return
}
let dataForNextSection = visibleDataSource[indexPath.section + 1]
dataForNextSection.hidden = false
collectionView.reloadData()
}