iOS-显示后更新UITableView
我有一个视图,有两张桌子。此视图定期将数据加载到其中,我希望第一个表格是显示所有项目所需的高度,这样表格就不必滚动。我有以下代码来实现这一点:iOS-显示后更新UITableView,ios,objective-c,uitableview,uistoryboard,Ios,Objective C,Uitableview,Uistoryboard,我有一个视图,有两张桌子。此视图定期将数据加载到其中,我希望第一个表格是显示所有项目所需的高度,这样表格就不必滚动。我有以下代码来实现这一点: -(void)viewDidAppear:(BOOL)animated{ table1.frame = CGRectMake(table1.frame.origin.x, table1.frame.origin.y, table1.frame.size.width, tableHeight1); table2.frame = CGRectMa
-(void)viewDidAppear:(BOOL)animated{
table1.frame = CGRectMake(table1.frame.origin.x, table1.frame.origin.y, table1.frame.size.width, tableHeight1);
table2.frame = CGRectMake(table2.frame.origin.x, table1.frame.origin.y + 20 + tableHeight1, table2.frame.size.width, tableHeight2);
if(tableHeight2 + table2.frame.origin.y > 550){
tableHeight2 = 530 - table2.frame.origin.y;
}
table1.frame = CGRectMake(table1.frame.origin.x, table1.frame.origin.y, table1.frame.size.width, tableHeight1);
table2.frame = CGRectMake(table2.frame.origin.x, table1.frame.origin.y + 25 + tableHeight1, table2.frame.size.width, tableHeight2);
}
它起作用了。当所有的事情都说了,做了,第一张桌子的大小也相应地调整了,下面的第二张桌子也是如此
问题在于,视图首先加载在情节提要中布局的表的大小,然后在完成所有操作后相应地调整大小。因此,用户可以看到部分表格或半空白表格两秒钟,然后再将其调整到适当的高度
我已经尝试将代码粘贴到viewDidLoad和layoutSubviews中,它要么中断表,要么根本不调整表的大小。有什么想法吗?如果您想显示一个已经大小合适的表视图,您可以尝试通过编程方式将其添加到视图中,即
tableView = [[UITableView alloc] initWithFrame:frame]; //your custom frame
包含更多的代码,但也有更多的控制。尝试了这一点,它根本不会调整表的大小。和其他人一样。除非我需要不同的代码才能工作?我看到了另一个答案,说我必须以编程方式制作表格。可能是这样吗?如果您将代码粘贴到多个位置(ViewWillDisplay等),它会工作得更好吗?我想你需要找出为什么用户界面会在两秒钟后更新。你正在加载数据吗?我正在加载数据。我能做些什么来加载数据并在任何事情出现之前更新表吗?是的,应该在视图中显示。你在哪里调用重载数据?