Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-显示后更新UITableView_Ios_Objective C_Uitableview_Uistoryboard - Fatal编程技术网

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等),它会工作得更好吗?我想你需要找出为什么用户界面会在两秒钟后更新。你正在加载数据吗?我正在加载数据。我能做些什么来加载数据并在任何事情出现之前更新表吗?是的,应该在视图中显示。你在哪里调用重载数据?