Контролируйте скорость анимации insertRowsAtIndexPath в uitableview

Я использовал insertRowsAtIndexPath вместо reloadData. При первой загрузке анимация выполняется слишком быстро, поскольку количество строк велико.

Можно ли управлять анимацией скорости insertRowsAtIndexPath?

Спасибо.

3 ответа

Отмените insertRowsAtIndexPaths и добавьте пользовательскую анимацию, как вам нравится, с задержкой.

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: (UITableViewRowAnimation)animation
 {
for (NSIndexPath *indexPath in indexPaths)
{
 UITableViewCell *cell = [self cellForRowAtIndexPath:indexPath];
 [cell setFrame:CGRectMake(320, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height)];
 [UIView beginAnimations:NULL context:nil];
 [UIView setAnimationDuration:1];
 [cell setFrame:CGRectMake(0, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height)];
 [UIView commitAnimations];
}
}


Я думаю, что невозможно управлять скоростью анимации.

Может быть, вы можете использовать scrollToRowAtIndesPath вместо этого.


Абсолютно непроверенный, но вы можете попробовать это для пятисекундной анимации:

[UIView animateWithDuration:5. animations:^(void){
 [_tableView insertRowsAtIndexPath:... animated:NO];
}];

licensed under cc by-sa 3.0 with attribution.