iPhone загрузить больше tableViewCell - PullRequest
2 голосов
/ 03 ноября 2010

Итак, у меня есть вопрос дизайна для вас.В основном у меня есть приложение, в котором при загрузке приложения я получаю 20 элементов с сервера и отображаю их в виде таблицы.У меня также есть ячейка таблицы загрузки, которая появляется в последней ячейке.Что я хочу сделать - это когда появится эта ячейка, загрузить следующие 20 элементов, добавить их в список и перезагрузить таблицу.

Какие рекомендации вы, ребята, делаете для того, чтобы сделать что-то подобное?Должен ли я автоматически отключить запрос при появлении ячейки?Или я должен ждать что-то еще, чтобы сделать это?Любой вклад будет оценен.Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 ноября 2010

Лично я бы отклонил запрос, как только появится ячейка.На самом деле, я бы рассмотрел запрос на запуск до появления ячейки - около 15 или около того?Таким образом, пользователь ждет меньше времени с отображаемой загрузочной ячейкой.

Однако все зависит от того, насколько велик ваш набор данных - если будет много данных, чтобы получить следующие 20 строк, я бы что-то положилнапример, «нажмите здесь для получения дополнительных результатов» и подождите, пока пользовательский ввод не сработает, запрос.

Лучший способ выяснить, что дает лучший пользовательский опыт, - это провести быстрый пользовательский тест - спросите людей,будьте вашими клиентами, чтобы протестировать приложение и увидеть, что они кажутся счастливыми с.И посмотрите на такие приложения, как ваше - что они делают - если они создали прецедент с вашими клиентами, возможно, вам следует попытаться следовать этому?

2 голосов
/ 03 ноября 2010

Вы можете использовать следующий тестовый код;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    totalElements = pageNumber*kNumberofElementsPerPage;
    int noOfrows = totalElements>[customerArray count]?[customerArray count]:totalElements+1;
    return noOfrows;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    if(indexPath.row == totalElements&&totalElements!=0){
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"loadMoreCell"];
        if(cell == nil){
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"loadMoreCell"];
        }
        cell.textLabel.text = @"Load More records";
        cell.detailTextLabel.text = [NSString stringWithFormat:@"Showing %d of %d records",totalElements,[customerArray count]];
        return cell;
    }
    ......
    ......
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row == totalElements){
        pageNumber++;
        [customerTableView reloadData];
        return;
    }
    ......
    ......
}

Надеюсь, это поможет вам.

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