Есть два подхода к тому, что у вас есть.
1-й.Вы не создаете разные секции, потому что можете просто создавать строки с разным дизайном ячеек.
, поэтому в этой строке структура данных будет перечисляться
enum Rows{
case headerRow(your associated data)
case descriptionRow(your associated data)
case FormRow(your associated data)
}
var data : [Rows] = []
extension ViewController : UITableViewDataSource{
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let currentData = data[indexPath.row]
switch currentData {
case .headerRow(let associatedData):
// configure data with cell
// return headerRow Cell
case .descriptionRow(let associatedData):
// same as above
case .FormRow(let associatedData):
// same as above
}
}
}
2-й подход будет использовать разделы.Но я рекомендую использовать его, только если у вас есть разные строки в разделе.В этом случае это более или менее то же самое, но вы определяете свои разделы, чтобы быть enum и расширяться оттуда.