Iphone 自动布局UIScrollView以适应包括子视图和分组表在内的内容

Iphone 自动布局UIScrollView以适应包括子视图和分组表在内的内容,iphone,autolayout,Iphone,Autolayout,我正试图呈现一个分组为多个部分的对象的相关信息。它可能很长,因此每个部分都使用一个视图来直观地分隔区域,并且都在一个滚动视图中 第一个子视图有一个文本字段,它可以调整大小以适应文本,其父视图也可以调整大小以适应文本字段 第二个子视图有一个分组表来显示数据。我希望表格中的所有数据都显示出来,并且不应该有表格滚动 第三个子视图有更多信息,但就本演示而言,其内容是一个空视图。在real app中,我可以添加任意数量的自定义子视图 我发现第一个子视图的大小适当调整,但我找不到布局约束的组合,这些约束将使

我正试图呈现一个分组为多个部分的对象的相关信息。它可能很长,因此每个部分都使用一个视图来直观地分隔区域,并且都在一个滚动视图中

第一个子视图有一个文本字段,它可以调整大小以适应文本,其父视图也可以调整大小以适应文本字段

第二个子视图有一个分组表来显示数据。我希望表格中的所有数据都显示出来,并且不应该有表格滚动

第三个子视图有更多信息,但就本演示而言,其内容是一个空视图。在real app中,我可以添加任意数量的自定义子视图

我发现第一个子视图的大小适当调整,但我找不到布局约束的组合,这些约束将使第二个子视图的大小适合表格并向下移动第三个视图

当子视图的内容可能会调整大小时,我需要做什么才能使滚动视图适合其内容?表视图正在填充父视图中的可用空间,但父视图没有展开以适应。我注意到第三个视图对superview具有顶部空间约束,而不仅仅是对其上方的视图。这在下面的屏幕截图中可见


我发现了一个与大多数解决方案类似的解决方案,回想起来似乎显而易见

我认为我的问题是,内部tableview没有固定的高度,因为它也是一个scrollview,所以试图适应指定的内容,而不是扩展以适应内部内容。我可以通过在IB中添加一个固定高度约束并将其连接到视图控制器中的一个插座来解决我的问题。然后在控制器中:

-(void) viewWillLayoutSubviews{
    [self.tableView layoutIfNeeded];
    self.tableViewHeightConstraint.constant = self.tableView.contentSize.height;
}
德普。总之,表格视图需要一个高度,所以我设置了一个

这是一个屏幕截图,请注意右侧的固定高度约束: