как вставить строку из tableview с анимацией

#iphone #uitableview #animation

#iPhone #uitableview #Анимация

Вопрос:

Я новичок в iphone, пожалуйста, помогите мне, в моем приложении отображаются данные о доступе к tableview с sql Server через веб-службы, но моя проблема в том, что при вставке новой строки и добавлении в tableview в tableview добавляется вновь введенная строка, но она добавляется нормально, я хочу добавить анимацию при добавлении новой строки в tableview. Я не знаю, как добавить анимацию в tableview после ввода новой записи, у кого есть какие-либо идеи, пожалуйста, скажите мне.

Ответ №1:

Чтобы вставить строку:

     int rowIndex = 0;//your row index where you want to add cell
    int sectionIndex = 0;//your section index
    NSIndexPath *iPath = [NSIndexPath indexPathForRow:rowIndex inSection:sectionIndex];
    NSArray *array = [NSArray arrayWithObject:iPath];
    [self.tableView insertRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationFade];
  

Но вам нужно убедиться, что у вас есть дополнительная запись с указанным индексом в вашем dataSourse массиве (массив, который вы используете для заполнения данных в вашей таблице).

Ответ №2:

insertRowsAtIndexPaths:с помощью анимации:

Вставляет строки в приемник в местоположениях, определенных массивом индексных путей, с возможностью анимировать вставку.

 - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
  

Ссылка на класс UITableView

Комментарии:

1. спасибо, но я понятия не имею, как использовать этот метод, не могли бы вы, пожалуйста, привести пример кода.

Ответ №3:

Вы могли бы использовать метод - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation UITableView.

Ответ №4:

Проблема: Итак, если вы вставляете данные поверх tableview, то пользователю приходится прокручивать вниз, чтобы найти, где он остановился?

Решение: почему бы не сделать эту прокрутку вниз для пользователя, рассчитав смещение и установив смещение до завершения обновления tableview.

Как вычислить это смещение? (количество ячеек, вставляемых сверху) * (высота ячеек)

Примечание: в приведенном ниже примере / вычислении я вычитаю две ячейки из количества вставляемых ячеек, чтобы дать пользователю возможность предварительного просмотра данных сверху

     [strongSelf.tableView beginUpdates];

    //INSERT DATA amp; CELLS ON TOP

    //REMOVE DATA ON BOTTOM IF NECESSARY

    //moving scrollview right back down so user can resume where last left off
    NSInteger estimatedRow = strongSelf.tableView.rowHeight * ( (indexPathsAdding.count) - 2);
    [strongSelf.tableView setContentOffset:CGPointMake(0, estimatedRow)];


    [strongSelf.tableView endUpdates];