我有一个UITableView。在点击按钮我要显示我的自定义视图,然后,一旦视图可见,从tableview中删除特定项目。自定义视图隐藏了tableview,因此我希望在新视图可见后进行删除。
目前,我有这个,它添加自定义视图,然后应该删除该项,并重新加载表,但重新加载正在动画结束时发生(我有一个动画块,更改视图alpha),所以我可以看到更新。
[self.view addSubview:customView];
[itemArray removeObject:object];
[self.tableView reloadData];
如何在视图可见之前延迟重新加载?
感谢。
答案 0 :(得分:3)
尝试将reloadData添加到viewDidAppear
:
-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.tableView reloadData];
}
这应该给你所需的延迟。
答案 1 :(得分:1)
或者您可以使用performSelector方法:
[self performSelector:@selector(myOtherMethod) withObject:nil afterDelay:1.5];
答案 2 :(得分: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];
}];