cho*_*ise 3 iphone objective-c uitableview uikit ios
所以我在UITableViewCell我的tableView中插入一个.
[searchTableView beginUpdates];
[searchTableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationTop];
[searchTableView endUpdates];
Run Code Online (Sandbox Code Playgroud)
在此之后,我正在运行一个异步请求,该请求使用淡入淡出动画更新tableviewcell.
[someRequestWithCompletion:^(id data) {
dispatch_async(dispatch_get_main_queue(), ^{
[searchTableView beginUpdates];
[searchTableView reloadRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
[searchTableView endUpdates];
});
}];
Run Code Online (Sandbox Code Playgroud)
但是在插入动画完成之前,此请求可能会完成.如果请求在插入动画之后完成,则没有问题,如果它在之前完成并且调用reloadRowsAtIndexPaths当前正在插入的同一单元格,则单元格立即显示并在插入动画淡出时强制重新加载.
有没有办法在单元格完全插入后触发重新加载更新?什么是最好的方法呢?
如果有任何问题,请在评论中告诉我
Sah*_*jan 12
试试这个..
你可以在完成动画后重新加载你的TableView.
[CATransaction begin];
[searchTableView beginUpdates];
[CATransaction setCompletionBlock: ^{
[searchTableView reloadData];
}];
[searchTableView deleteRowsAtIndexPaths: [NSArray arrayWithObjects: indexPath, nil]
withRowAnimation: UITableViewRowAnimationAutomatic];
[searchTableView endUpdates];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)