2

我有一个 UITableView。点击一个按钮,我想显示我的自定义视图,然后,一旦视图可见,从 tableview 中删除特定项目。自定义视图隐藏了 tableview,所以我希望在这个新视图可见之后进行删除。

目前,我有这个,它添加了自定义视图,然后应该删除该项目,并重新加载表格,但重新加载发生在动画结束时(我有一个动画块,更改视图 alpha),所以我可以看到更新。

[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

您提到您自己正在为视图设置动画;您应该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 回答
1

或者您可以使用 performSelector 方法:

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