UITableView удалить все строки сразу - PullRequest
17 голосов
/ 11 июня 2011

Как можно удалить все строки из UITableView одновременно?Потому что, когда я перезагружаю табличное представление с новыми данными, я все еще вставляю новые строки:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    CustomTableViewCell *cell = (CustomTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[CustomTableViewCell alloc] initWithFrame:CGRectZero] autorelease];
    }

    //... setting the new cell here ...

    return cell;
}

Спасибо.

Ответы [ 5 ]

48 голосов
/ 11 июня 2011

Сделай это.

Перед перезагрузкой таблицы с помощью

[tableView reloadData];

Удалите все объекты из вашего массива tableView (Массив, который заполнил ваш tableView) Например.

[myArray removeAllObjects];
[tableView reloadData];
5 голосов
/ 18 ноября 2014

FYI, Решение выше "Удалите все из вашего источника данных, затем вызовите reloadData."Похоже, они защищают это:

TableView.dataSource = nil;
[TableView reloadData];

Я попробовал это, и это, похоже, сработало.За исключением того, что в iOS 8.1 я получил случайные сбои.И я имею в виду случайный, как, например, я мог бы выполнить этот код 10x, и он будет падать 1x.Итак, я использовал рекомендуемый ответ:

[myArray removeAllObjects];
[tableView reloadData];

и теперь я в порядке.

4 голосов
/ 11 июня 2011

Удалите все ваши dataSource, затем позвоните reloadData.

2 голосов
/ 11 июня 2011

Похоже, вы не очищаете свою коллекцию данных (NSArray), прежде чем добавить дополнительные данные.UITableView обычно показывает все данные вашего массива.Если вам не нужны предыдущие строки / данные, вам следует очистить массив перед добавлением в него новой информации.Затем позвоните [yourTableView reload]

0 голосов
/ 12 августа 2013

сначала удалите старые данные

myArray = nil;
[tableView reloadData];

затем загрузите ваши новые данные

myArray = newData;
[tableView reloadData];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...