UITableView仅在ViewDidDisplay中调整大小

UITableView仅在ViewDidDisplay中调整大小,uitableview,viewdidload,viewdidappear,Uitableview,Viewdidload,Viewdidappear,我遇到了一个奇怪的问题,我不知道在哪里/如何解决它 我在UIViewController上有6个UITableView(我使用的是故事板),我想在ViewDiLoad中调整它们的大小,但我不能,我发现调整它们大小的唯一方法是在ViewDidDisplay中,问题是当我旋转模拟器时,帧变得像IB中的一样 你能帮我处理这个案子吗 - (void)viewDidLoad { [super viewDidLoad]; [_hoursTable setScrollEnabled:NO];

我遇到了一个奇怪的问题,我不知道在哪里/如何解决它

我在UIViewController上有6个UITableView(我使用的是故事板),我想在ViewDiLoad中调整它们的大小,但我不能,我发现调整它们大小的唯一方法是在ViewDidDisplay中,问题是当我旋转模拟器时,帧变得像IB中的一样

你能帮我处理这个案子吗

- (void)viewDidLoad
{
    [super viewDidLoad];
    [_hoursTable setScrollEnabled:NO];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


-(void)viewDidAppear:(BOOL)animated
{
    [_firstTable setFrame:CGRectMake(100, 0, 100, 768)];
    [_secTable setFrame:CGRectMake(200, 0, 100, 100)];
    [_thirdTable setFrame:CGRectMake(300, 0, 100, 100)];
    [_fourthTable setFrame:CGRectMake(400, 0, 100, 100)];
    [_fifthTable setFrame:CGRectMake(500, 0, 100, 100)];
    [_hoursTable setFrame:CGRectMake(600, 0, 100, 100)];
}

此类代码应位于
布局子视图中

- (void)layoutSubviews {
    // your code here
}

嗯,好的,现在我明白了,self.view在ViewDidLoad中,layoutSubviews中的子视图不改变任何内容layoutSubviews不会被调用。。我的UITableView链接到IB。。这会改变什么吗?正在调用layoutSubviews吗?只有当我将其添加到ViewDidLoad中时,我才更新了我的答案,请确保正确实现了该方法,因为它应该被调用。文件: