可能重复:
Get notified when UITableView has finished asking for data?
是否可以在tableview完成后获取通知,以便在reloadData方法之后重新加载其数据?或者可以等到tableview完成重装?
由于
答案 0 :(得分:2)
有一个非常简单的解决方案是检查您是否处于委托的最后一次迭代
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
最后一次迭代完成后,在那里添加你的代码
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if([indexPath row] == lastRow){
any code you want
}
}
由于
答案 1 :(得分:1)
让我们完成一个完整的区块。谁不爱一块?
@interface DUTableView : UITableView
- (void) reloadDataWithCompletion:( void (^) (void) )completionBlock;
@end
和...
#import "DUTableView.h"
@implementation DUTableView
- (void) reloadDataWithCompletion:( void (^) (void) )completionBlock {
[super reloadData];
if(completionBlock) {
completionBlock();
}
}
@end
用法:
[self.tableView reloadDataWithCompletion:^{
//do your stuff here
}];
编辑:
请注意,以上只是解决方案的一半。在主线程上同步更新节和行的数量以及行高度,因此使用上面的代码,完成将在某些UI部分完成时回调。但是从数据源加载的数据是异步的 - 所以这个答案真的不是@Michal想要的。