В методе UITableViewDataSource
, я проверить, есть ли у меня данные:DeqeueReusableCellWithIdentifier перекрытия двух ячеек
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
if (data.count == 0)
{
return 1; //This one cell will be of type NoDataTypeCell
} else {
return data.count //These cells will be of type DataTypeCell
}
}
поэтому на cellForRowAtIndexPath
я проверить, какой тип клеток, чтобы использовать, таким же образом:
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
SAFindSuggestedTableViewCell* dataCell = (SAFindSuggestedTableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"hasDataIdentifier" forIndexPath:indexPath];
if (data.count == 0)
{
NODataTypeCell* cellNoData = (NODataTypeCell*)[tableView dequeueReusableCellWithIdentifier:@"noDataIdentifier];
//Setup the noDataCell
return cellNoData;
} else {
return dataCell;
}
}
Это приводит к тому, что я никогда раньше не видел. Как и ожидалось, мой контроллер загружается с пустыми данными. В результате 1 NODataTypeCell отменяется.
После ввода данных TableView перезагружается.
numberOfRowsInSection
data.count
возвращает
cellForRowAtIndexPath
не возвращает noDataCell
, он возвращает data.count
количество dataCells
Кроме моего Tableview до сих пор noDataCell. Самая странная часть? его непосредственно над первой ячейкой в таблицеView. Ячейка не поддается выбору, а также делает ячейку за ней невыбираемой. У него нет данных, поскольку он не был настроен. Но его там, и он не исчезнет.
Что я делаю неправильно?
Вот изображение перспективы отладчика вида за ячейками. Вы можете ясно видеть, что есть две ячейки первой строки, и только одна клетка на втором ряду
Вы пытались переместить dequeue SAFindSpectedTableViewCell в предложение else? Поскольку, несмотря на то, что вы не возвращаете DataCell для отображения, кажется, что процесс dequeue не обрабатывает лишнее время. – CStreel
@CStreel Это ошибка, которая возникает, когда я делаю то, что вы предлагали: Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [_ UITableViewReorderingSupport _needsSetup]: непризнанный селектор, отправленный в экземпляр 0x148b4b6d0' – YichenBman