iPhone: разделы UITableView - PullRequest
       1

iPhone: разделы UITableView

1 голос
/ 29 февраля 2012

У меня есть табличное представление с разделами.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return numberHigherThen0;
}

в методе cellForRowAtIndexPath я настраиваю свои строки в соответствии с разделом

- (UITableViewCell *)tableView:(UITableView *)aTableView
        cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   if (0 == indexPath.section) {
       //setup rows
   } esle {
     //setup rows
   }
}

количество разделов и строк в разделах изменяется динамически. Но номера секций всегда> 0. Так что в cellForRowAtIndexPath indexPath.section == 0 всегда будет такой случай, верно? Но иногда cellForRowAtIndexPath не передавал case indexPath.section == 0 !!! Зачем ? Когда это может быть правдой? Когда cellForRowAtIndexPath может начинать подсчет разделов с 1?

Обновление: секция 2 не имеет строк

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

В numberOfSectionsInTableView: вы указываете количество секций - однако, секции нумеруются от 0 .

Так что если вы вернете 3 в вашем numberOfSectionsInTableView у вас будет три раздела - раздел 0, раздел 1 и раздел 2.

0 голосов
/ 29 февраля 2012

tableView:cellForRowAtIndexPath: вызывается только тогда, когда табличному представлению необходимо обновить ячейку с заданным индексным путем.

Так что, если секция 0 видна при запуске вашего приложения, да, вы должны получить вызов с секцией== 0 хотя бы один раз.В последующих обновлениях раздел 0 может быть пропущен, если UITableView считает, что ему не нужно его обновлять.Это может быть то, что вы видите.

Используйте reloadRowsAtIndexPaths:withRowAnimation:, или reloadSections:withRowAnimation: и т. Д., Чтобы сообщить UITableView, что строка изменилась и что ей необходимо обновить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...