Подтвердить что ты не робот

IOS - обновить таблицу UITableView правильно?

У меня много данных и много строк в моем TableView. когда изменения данных я хочу обновить мои видимые ячейки на экране, я действительно не хочу использовать reloadData, потому что это дорогостоящий вызов.

Можно ли как-то обновить видимые ячейки? Я попытался позвонить: beginUpdate и endUpdate в таблице, но это не работает все время?

Любые предложения?

4b9b3361

Ответ 1

Вы можете:

[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows] 
                 withRowAnimation:UITableViewRowAnimationNone];

Ответ 2

Для Swift 3:

tableView.reloadRows(at: tableView.indexPathsForVisibleRows!, with: .none)

Ответ 3

Попробуйте вызвать метод deleteRowsAtIndexPaths, метод UITableView, сразу после удаления модели из источника данных. Например, если вы удаляете строку в режиме редактирования, вы можете написать что-то вроде кода ниже. Обратите внимание: первая строка в инструкции "if" удаляет объект из источника данных, а вторая строка очищает таблицу:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{

    if ( editingStyle == UITableViewCellEditingStyleDelete ) {

         [[[[[ItemsStore sharedStore] parameterArray] objectAtIndex:indexPath.section]  objectForKey:@"data"] removeObjectAtIndex:indexPath.row];

        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

    }
}