Ios 设置UITableView替换动画-在动画完成之前不显示数据
我有一个UISplitViewController,它在主视图和详细视图中显示UITableView 当用户在主视图表中选择一个项目时,我将在细节视图中重新加载该表,并且我希望使用页面卷曲来设置动画 以下是我使用的代码:Ios 设置UITableView替换动画-在动画完成之前不显示数据,ios,uitableview,uiviewanimationtransition,Ios,Uitableview,Uiviewanimationtransition,我有一个UISplitViewController,它在主视图和详细视图中显示UITableView 当用户在主视图表中选择一个项目时,我将在细节视图中重新加载该表,并且我希望使用页面卷曲来设置动画 以下是我使用的代码: UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain]; [newTableView reloadData
UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain];
[newTableView reloadData]; // ineffective attempt to load data prior to transition
[UIView transitionFromView:self.tableView
toView:newTableView
duration:0.8
options:UIViewAnimationOptionTransitionCurlUp
completion:^(BOOL finished)
{
[newTableView reloadData]; // needed
[self setTableView:newTableView];
[newTableView release];
}];
转换发生了,但是“显示的”UITableView只是一个普通的未填充UITableView,除非我强制在完成块中重新加载数据。然后,如果我这样做,我将转换到一个空表,然后重新加载以显示预期的数据——这不是很好
我如何才能使显示的表格已经显示所需的数据?谢谢。我想这应该行得通
UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain];
[self setTableView:newTableView]; //until the table is set, there is no use reloading it
[newTableView reloadData]; // it should reload now and then animate
[UIView transitionFromView:self.tableView
toView:newTableView
duration:0.8
options:UIViewAnimationOptionTransitionCurlUp
completion:^(BOOL finished)
{
[newTableView reloadData]; // needed
[self setTableView:newTableView];
[newTableView release];
}];
u缺少
[self-setTableView:newTableView]代码>以上重新加载数据
。希望能有帮助。快乐编码:)谢谢您的回复,但不是这样。如果我事先将tableView设置为newTableView,那么它将在动画之前重新加载可见表(违背了预期),并且我实际上是在要求从newTable转换到newTable。实际上,根据您建议的更改,卷曲动画将显示为黑色视图,而不是空表。无论如何,再次谢谢你。