Основной макет представляет собой сгруппированную таблицу. Каждый кластер ячеек представляет собой раздел таблицы. Самая верхняя ячейка имеет прозрачный фон.
Ключом к выполнению этой работы является наличие логической структуры в делегате табличного представления, который понимает, какая компоновка ячейки входит в какой раздел и какую строку. Оператор switch обычно самый простой, хотя вы также можете использовать массивы или словари, настроенные для отображения макета.
Итак, в tableView:cellForRowAtIndexPath:
вы бы получили что-то вроде:
switch (indexPath.section) {
case 0:
cell= //configure cell with transparent background
break;
case 1:
if (indexPath.row==0) {
cell = // configure cell for multiline
}else {
cell = // configure for UITableViewCellStyleValue2
}
break;
case 2:
// .. and so on for each section and cell
break;
default:
break;
}
В этом макете табличное представление используется не столько как логическая таблица (которая отображает повторяющиеся единицы структурированных данных списка), а как удобный механизм управления макетом. Логика управления табличным представлением должна быть более сложной и отражать потребности макета.