所以我将UITableViewCell
插入到tableView中。
[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
,则该单元格立即显示并在插入动画淡出时强制重新加载。单元完全插入后,是否有办法触发重新加载更新?最好的方法是什么?
如有任何疑问,请在评论中让我知道
最佳答案
试试这个..
您可以在完成动画后重新加载TableView。
[CATransaction begin];
[searchTableView beginUpdates];
[CATransaction setCompletionBlock: ^{
[searchTableView reloadData];
}];
[searchTableView deleteRowsAtIndexPaths: [NSArray arrayWithObjects: indexPath, nil]
withRowAnimation: UITableViewRowAnimationAutomatic];
[searchTableView endUpdates];
[CATransaction commit];