- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
Теперь ваше табличное представление будет ожидать 2 раздела по 5 строк в каждом и попытаться их нарисовать. Тогда в cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger actualIndex = indexPath.row;
for(int i = 1; i < indexPath.section; ++i)
{
actualIndex += [self tableView:tableView
numberOfRowsInSection:i];
}
// you can use the below switch statement to return
// different styled cells depending on the section
switch(indexPath.section)
{
case 1: // prepare and return cell as normal
default:
break;
case 2: // return alternative cell type
break;
}
}
Приведенная выше логика с actualIndex
приводит к:
- Раздел 1, строки с 1 по X возвращает indexPath.row без изменений
- Раздел 2, строки с 1 по Y возвращает X + indexPath.row
- Раздел 3, строки с 1 по Z возвращает X + Y + indexPath.row
- Масштабируется до любого количества секций
Если у вас есть базовый массив (или другой класс плоских контейнеров) элементов, поддерживающих ячейки таблицы, это позволит вам заполнить несколько разделов в табличном представлении, используя эти элементы.