У меня есть сгруппированный UITableView в моем классе UIViewController, и я нахожу, что время от времени выделенная ячейка не равна нулю.UITableView cellForRowAtIndexPath ячейка не равна нулю, если ожидается
В таблице есть 3 раздела для начала и, и как только вызывается «viewDidLoad», инициируется вызов сервера, чтобы узнать, есть ли больше разделов. Перед тем, как представление будет даже отображаться, появится ответ сервера, и нам сказали, что у нас есть 4 раздела. Чтобы справиться с этим изменением, я делаю:
[self.tableview beginUpdates]
// Do the updating of the array that holds table data
[self.tableview endUpdates]
[self.tableview reloadData];
Далее я получаю вызов «numberOfSectionsInTableView», для которого я возвращаюсь 4, а затем «numberOfRowsInSection» и я возвращаюсь ожидаемые правильное количество строк. Обратите внимание, что это первый раз, когда я получаю любой из этих вызовов, так как перезагрузка таблицы происходила так быстро и до того, как представление было даже отображено.
На данный момент видны только данные из 1-го 3-х секций и прокрутите, чтобы просмотреть последний раздел. Когда вы прокрутите страницу до последнего раздела, одна из ячеек, которую я ожидаю в вызове tableView: cellForRowAtIndexPath, не является нулевой, как ожидалось. Тип ячейки - это то, что было использовано для другого раздела (у меня есть один тип UITableViewCell для первых двух разделов, а другой для последних двух разделов, которые я создаю и передаю обратно в cellForRowAtIndexPath, когда ячейка равна нулю).
Так как UITableView определяет, какая ячейка деактивирует и как выяснить, почему эта ячейка для данного раздела/строки не равна нулю, если это действительно так?
В этом была проблема. Я думал, что вся таблица должна иметь один и тот же идентификатор ячейки. –