2017-02-07 10 views
1

テーブルリロードが終了したことを目的Cに示す方法はありますか?私はテーブルリロード後にいくつかのコードを行う必要があります。テーブルリロードが終了したことを客観的なCに示す方法はありますか?

+3

ハズレを使用することができます。一般に、アーキテクチャが間違っていない限り、その情報は必要ありません。 – Sulthan

+0

Plsは作業の流れを記述します。 –

+0

あなたは何をしたいですか? – User511

答えて

0
Try this codes: 

[self.tableView reloadData]; 

# below I use myArr array to loop data for tableView 

dispatch_async(dispatch_get_main_queue(), ^{ 
    NSIndexPath* indexPath = [NSIndexPath indexPathForRow: ([self.tableView numberOfRowsInSection:([self.tableView numberOfSections]-1)]-1) inSection:([self.tableView numberOfSections]-1)]; 
    enter code here 

if(myArr == (indexPath+1)){ 
#execute your logic here 
} 
}); 
0

TableViewリロードは、次回のレイアウトパスで発生します。これは通常、実行ループに制御を戻すときに発生します。

だから、テーブルビューのリロードの後に​​何かを実行するための一つの方法は、すぐにレイアウトを実行するには、テーブルビューを強制することです:

[self.yourTableView reloadData]; 
[self.yourTableView layoutIfNeeded]; 
NSIndexPath* indexPath = [NSIndexPath indexPathForRow: ([self.yourTableView numberOfRowsInSection:([self.yourTableView numberOfSections]-1)]-1) inSection: ([self.yourTableView numberOfSections]-1)]; 
// Your Action goes here 

別のアプローチ: を使用して後で実行するためにあなたの後のレイアウトコードをスケジュール実行dispatch_async:

[self.yourTableView reloadData]; 

dispatch_async(dispatch_get_main_queue(), ^{ 
    NSIndexPath* indexPath = [NSIndexPath indexPathForRow: ([self.yourTableView numberOfRowsInSection:([self.yourTableView numberOfSections]-1)]-1) inSection:([self.yourTableView numberOfSections]-1)]; 

// Check Index Path if it's last then perform your action 
}); 

OR

使用のUITableView willDisplayCell方法

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){ 
     //end of loading 
     //Do whatever the Action required. Like Stop indicator, etc... 
    } 
} 
+0

リロード*は、次回のrunloopパスで開始されるかもしれませんが、*保証されているわけではありません。 –

0

あなたはCATransaction

[CATransaction begin]; 
[CATransaction setCompletionBlock:^{ 
    NSLog(@"Done Loading"); 
}]; 

[self.tableView reloadData]; 

[CATransaction commit]; 
関連する問題