UITableView никакой экран данных

Мои UITableView получают данные от Интернета. Иногда это не получает никакой (ячейка) данные. Это просто показывает пустую таблицу.

Как я могу показать сообщение/ячейку пользователю, что никакие записи данных не были найдены?

8
задан Yazzmi 19 July 2010 в 20:05
поделиться

2 ответа

Вы хотите вернуть одну ячейку, сообщающую об отсутствии данных.

Если вы храните данные ячеек в массиве, который является свойством класса (скажем, 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
}
25
ответ дан 3 November 2019 в 13:35
поделиться

Вы можете добавить тест в реализацию -tableView:cellForRowAtIndexPath: и отобразить специальную UITableViewCell, говорящую "нет результатов", когда вы не получаете данных.

Другой подход, который обычно выглядит лучше, заключается в том, чтобы добавить пользовательское представление непосредственно в UITableView. Не забудьте удалить его, когда появятся результаты для отображения.

2
ответ дан 3 November 2019 в 13:35
поделиться