Как добавить данные в UITableview во время выполнения? - PullRequest
1 голос
/ 25 июля 2011

Я хочу добавить данные или ячейки в UITableview, когда мы прокручиваем до последней ячейки UITableView. Другими словами, как мы видели во многих приложениях для iPhone, когда мы добрались до последней ячейки UITableview, к ней добавляется больше ячеек во время выполнения. Я хочу добиться этой функциональности в своем проекте.

Означает Добавить еще несколько ячеек в UITableview, когда мы достигли ранее добавленной последней ячейки.

Пожалуйста, скажите мне пример кода или любой учебник для него.

Ответы [ 5 ]

2 голосов
/ 25 июля 2011

Я думаю, что здесь есть 2 вопроса. Во-первых, как определить конец таблицы Veiw? Во-вторых, как динамически добавлять ячейки? Первый вопрос, я думаю, что это может быть сделано путем наблюдения значения смещения содержимого scrollView или текущего indexPath ячейки tableView. Смещение содержимого scrollView можно наблюдать с помощью следующего метода UIScrollViewDelegate. Смещение содержимого является свойством scrollView.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
   CGFloat currentOffset = scrollView.contentOffset;

   // Detect scrolling to bottom by this offset value.
   ....
}

Индекс ячейки может быть определен методом UITableViewDataSource.

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

Второй вопрос можно решить методами UITableView.

  • beginUpdates
  • endUpdates
  • insertRowsAtIndexPaths: withRowAnimation:
  • deleteRowsAtIndexPaths: withRowAnimation:
  • insertSections: withRowAnimation:
  • deleteSections: withRowAnimation:

Я помню примеры кодов в , этот официальный документ научит, как использовать вышеуказанные методы. Они не перезагружают все ячейки, но неосторожные операции легко приведут к сбою.

1 голос
/ 25 июля 2011

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

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return [array count];}

Я думаю, это помогло бы вам.

0 голосов
/ 25 июля 2011
    -(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

        int i=0;

        i=indexPath.row;

        int count=[urTablearray count];

        if (count == (++i)) {

                //do ur stuff here

                     here add object to urTablearray

                     [urTablearray addObject:@"vijay"];


        }


    }

Примечание. Тип urTablearray - NSMutableArray, а не NSArray

0 голосов
/ 25 июля 2011

Вы просто хотите добавить данные в таблицу?

Затем сначала вам может понадобиться добавить еще один вид, модальный вид. Вы должны написать некоторую спецификацию о том, что вы хотите добавить в этом представлении.

Далее вы отправляете сообщение в существующий массив данных (Предположим, вы используете массив)

[ExistingArrayData addObject:TemporalilyNewObject];

И вы можете сортировать данные, используя NSSortDescriptor.

NSSortDescriptor *nameSorter = [[NSSortDescriptor alloc] initWithKey:KEY_VALUE ascending:YES selector:@selector(caseInsensitiveCompare:)];
[ExistingArrayData sortUsingDescriptors:[NSArray arrayWithObject:nameSorter]];

В этом случае этот метод сортирует данные по возрастанию KEY_VALUE.

Наконец, вы должны добавить этот код в метод viewWillAppear RootView.

[self.tableView reloadData];

Этот код уведомляет приложение об изменении данных.

0 голосов
/ 25 июля 2011

Заполните tableView, используя массив (как вы всегда должны делать).Когда метод делегата cellForRowAtIndexPath запросит у вас последнюю ячейку, снова заполните массив новыми (дополнительными) данными и сделайте [tableView reloadData].

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