Мои UITableView получают данные от Интернета. Иногда это не получает никакой (ячейка) данные. Это просто показывает пустую таблицу.
Как я могу показать сообщение/ячейку пользователю, что никакие записи данных не были найдены?
Вы хотите вернуть одну ячейку, сообщающую об отсутствии данных.
Если вы храните данные ячеек в массиве, который является свойством класса (скажем, NSArray *listings
), вы можете поступить так:
-(NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
if ([self.listings count] == 0) {
return 1; // a single cell to report no data
}
return [self.listings count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([self.listings count] == 0) {
UITableViewCell *cell = [[[UITableViewCell alloc] init] autorelease];
cell.textLabel.text = @"No records to display";
//whatever else to configure your one cell you're going to return
return cell;
}
// go on about your business, you have listings to display
}
Вы можете добавить тест в реализацию -tableView:cellForRowAtIndexPath: и отобразить специальную UITableViewCell, говорящую "нет результатов", когда вы не получаете данных.
Другой подход, который обычно выглядит лучше, заключается в том, чтобы добавить пользовательское представление непосредственно в UITableView. Не забудьте удалить его, когда появятся результаты для отображения.