My issue
When I deal with UITableView
, I basically have an Array table_data
with my sections and rows.
An approach I use when creating a table where I know all the possible sections is with enums. You create an enum for each of the possible section types:
enum SectionTypes { case sectionA, sectionB, sectionC }
And then create a variable to hold the sections:
var sections: [SectionTypes]
When you have your data ready then you populate sections with the sections that needs to be displayed. I usually also make a method to help get the section:
func getSection(forSection: Int) -> SectionTypes {
return sections[forSection]
}
With this in place you can start implementing the common DataSource delegate methods:
func numberOfSections(in collectionView: UICollectionView) -> Int {
return sections.count
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
switch getSection(forSection: section) {
case .sectionA:
return 0 //Add the code to get the count of rows for this section
case .sectionB:
return 0
default:
return 0
}
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
switch getSection(forSection: indexPath.section) {
case .sectionA:
//Get section A cell type and format as your need
//etc
}
}