2013-03-10 4 views
3

, поэтому я вставляю UITableViewCell в свой tableView.перезагрузить UITableViewCell только после завершения вставки-анимации

[searchTableView beginUpdates]; 
[searchTableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationTop]; 
[searchTableView endUpdates]; 

после этого я выполняю асинхронный запрос, который обновляет tableviewcell с анимацией затухания.

[someRequestWithCompletion:^(id data) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      [searchTableView beginUpdates]; 
      [searchTableView reloadRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
      [searchTableView endUpdates]; 
     }); 
}]; 

но возможно, что этот запрос заканчивается до завершения анимации вставки. если запрос заканчивается после вставки-анимации, нет проблем, если он заканчивается раньше и вызывает reloadRowsAtIndexPaths в той же самой ячейке, которая в настоящее время вставлена, ячейка отображается немедленно и заставляет перезагружать, пока анимация вставки исчезает.

Есть ли способ инициировать обновление перезагрузки после того, как ячейка полностью вставлена? что было бы лучшим способом сделать это?

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

+1

Зачем нужна перезагрузка недавно вставленной строки? Почему бы не подождать и вставить строку после завершения «someRequestWithCompletion»? – rmaddy

+0

и здесь я думал, что можно перезагрузить только табличное представление :( –

+0

@KishorKundan Вы только перезагружаете представление таблицы. Вы можете перезагрузить всю таблицу, определенные строки или определенные разделы. Когда вы перезагружаете только одну строку, это не редкость для люди говорят, что они перезаряжают ячейку. – rmaddy

ответ

12

Попробуйте это ..

U может перезагрузить TableView После завершения анимации.

[CATransaction begin]; 
[searchTableView beginUpdates]; 

[CATransaction setCompletionBlock: ^{ 
     [searchTableView reloadData]; 
    }]; 

[searchTableView deleteRowsAtIndexPaths: [NSArray arrayWithObjects: indexPath, nil] 
         withRowAnimation: UITableViewRowAnimationAutomatic]; 

[searchTableView endUpdates]; 

[CATransaction commit]; 
+0

Три года спустя этот ответ спас мою задницу! Спасибо, сэр. –

Смежные вопросы