2010-12-01 12 views
2

私はUITableViewを持っています。ボタンをタップすると、カスタムビューが表示され、ビューが表示されたら、テーブルビューから特定のアイテムを削除します。カスタムビューはテーブルビューを隠すので、この新しいビューが表示された後に削除が行われるようにします。遅延reloadData on UITableView

現在、カスタムビューを追加してアイテムを削除してテーブルをリロードする必要がありますが、リロードはアニメーションが終了すると発生します(アニメーションブロックがあり、ビューのアルファを変更します)。だから私は更新を見ることができます。

ビューが表示されるまで、再ロードをどのように遅らせることができますか?

ありがとうございました。 viewDidAppearにreloadDataを追加

答えて

1

あなたはビューを自分でアニメート言及。

[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(methodThatCallsReloadData)]; 

// or even 
[UIView setAnimationDelegate:self.tableView]; 
[UIView setAnimationDidStopSelector:@selector(reloadData)]; 

か、ブロックベースのAPIを使用している場合:これは素晴らしい作品

[UIView animateWithDuration:... completion:^(BOOL finished) { 
    [self.tableView reloadData]; 
}]; 
+0

感謝をアニメーションのようなものを使用して完了すると、あなたはreloadDataを呼び出す必要があります。私はブロックAPIを好むだろうが、その唯一の4.0+以来、私の3.2ユーザーはクラッシュするだろう – joec

3

試してみてください。

-(void) viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [self.tableView reloadData]; 
} 

あなたに必要な遅延を与える必要があります。

1

か、performSelectorの方法を使用することができます。

[self performSelector:@selector(myOtherMethod) withObject:nil afterDelay:1.5];