我有一个带有两个表的视图。此视图定期将数据加载到其中,我希望第一个表是显示所有项目所需的高度,以便表格不必滚动。我有以下代码来完成此任务:
-(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中,它会破坏或根本不调整表的大小。有什么想法吗?
答案 0 :(得分:0)
如果您希望显示表格视图,已经是正确的尺寸,您可以尝试以编程方式将其添加到您的视图中,即
tableView = [[UITableView alloc] initWithFrame:frame]; //your custom frame
涉及更多代码,但也有更多控制权。