2

UITableViewがあります。ボタンをタップしてカスタムビューを表示し、ビューが表示されたら、テーブルビューから特定のアイテムを削除します。カスタムビューはテーブルビューを非表示にするので、この新しいビューが表示された後に削除を実行したいと思います。

現在、これがあります。これにより、カスタムビューが追加され、アイテムが削除されてテーブルがリロードされますが、アニメーションが終了すると同時にリロードが発生します(アニメーションブロックがあり、ビューのアルファを変更します)。更新。

[self.view addSubview:customView];
[itemArray removeObject:object];
[self.tableView reloadData];

ビューが表示されるまでリロードを遅らせるにはどうすればよいですか?

ありがとう。

4

3 に答える 3

3

次の場所にreloadDataを追加してみてくださいviewDidAppear

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

それはあなたに必要な遅延を与えるはずです。

于 2010-12-01T20:34:17.297 に答える
1

または、performSelectorメソッドを使用できます。

[self performSelector:@selector(myOtherMethod) withObject:nil afterDelay:1.5];
于 2010-12-01T20:45:00.420 に答える
1

あなたは自分でビューをアニメートしていると言います。reloadDataアニメーションが完了したら、次のようなものを使用して呼び出す必要があります。

[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];
}];
于 2010-12-01T21:41:22.640 に答える