Анимировать цвет фона ячеек в виде таблицы

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

Это мой код для анимации ячеек (я использую его в моем собственном методе просмотра таблицы обновлений после вставки новых строк. InsertingArray состоит из IndexPath строк, которые должны быть анимированы):

for (int i=0; i<[insertingArray count]; i++)
{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[insertingArray objectAtIndex:i]];
    cell.backgroundColor = [UIColor grayColor];
    [UIView animateWithDuration:1.0
            delay: 1.0
            options: UIViewAnimationOptionCurveEaseIn
            animations:^{
            cell.backgroundColor = [UIColor whiteColor];
    }
    completion:nil];
}

Итак, как это исправить и оживить все строки, которые были добавлены в виде таблицы?


person Troir1    schedule 09.05.2015    source источник
comment
Может, лучше было бы вместо этого анимировать фон всей таблицы?   -  person Azat    schedule 09.05.2015
comment
У меня была аналогичная проблема, и я переместил код анимации ячейки (который сдвинул метки справа и добавил флажок) в - (void) tableView: (UITableView *) tableView willDisplayCell: (UITableViewCell *) ячейку forRowAtIndexPath: (NSIndexPath *) indexPath   -  person Gismay    schedule 09.05.2015
comment
Дело в том, что помимо вставки строк вверху, у меня есть метод загрузки старых строк (уведомлений) из базы данных (при прокрутке вниз), поэтому, если я буду воспроизводить анимацию в методе willDisplayCell, он будет анимировать все новые ячейки в виде таблицы. Мне нужно оживить только то, что было добавлено сверху.   -  person Troir1    schedule 09.05.2015
comment
it doesn't animate the rest of cells - этот оператор довольно ясно демонстрирует, что вы не знаете, как iOS обрабатывает повторно используемые ячейки внутри - в большинстве случаев ячеек за пределами экрана нет. есть контент, который будет отображаться за пределами экрана, но не связан с ячейкой пользовательского интерфейса - ›stackoverflow.com/questions/2152180/   -  person luk2302    schedule 10.05.2015