Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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容器和自动布局_Ios_Autolayout - Fatal编程技术网

iOS容器和自动布局

iOS容器和自动布局,ios,autolayout,Ios,Autolayout,我有一个带有多个ChildViewController的ContainerViewController: ContainerVC - ChildVC 1 - ChildVC 2 - ChildVC 3 - ... 我正在尝试为这些具有垂直对齐的ChildViewController使用自动布局。但是这些ChildViewController没有固定的高度。我目前的决议是: 在ChildViewController中设置preferredContentSize 使用KVO观察Contai

我有一个带有多个ChildViewController的ContainerViewController:

ContainerVC
 - ChildVC 1
 - ChildVC 2
 - ChildVC 3
 - ...
我正在尝试为这些具有垂直对齐的ChildViewController使用自动布局。但是这些ChildViewController没有固定的高度。我目前的决议是:

  • 在ChildViewController中设置
    preferredContentSize
  • 使用KVO观察ContainerViewController中ChildViewController的
    preferredContentSize
  • 更改
    preferredContentSize
    时更新约束
  • 我的ContainerVC视图是滚动视图…

    你有什么建议吗?抱歉,我不是以英语为母语的人…

    您可能希望对子视图使用比例视图大小,而不是使用preferredContentSize,因为除非您使用滚动视图,否则视图控制器的帧大小是有限的

    假设视图控制器的帧大小为600 x 600,现在在运行时,第一个视图的高度为250磅,第二个视图的高度为350磅,第三个视图的高度为200磅。请看,您有一个问题,因为您的视图控制器只能容纳600 pt的所有视图

    因此,您可能需要按比例设置视图,以便所有3个视图都适合框架。比如说,你想把25%的身高分配给你的孩子Vc_1,35%分配给孩子Vc_2,其余40%分配给孩子Vc_3。现在,所有视图都可以放在ViewController中。使用等高约束可以轻松实现此场景。除非容器是滚动视图,否则最好不要让视图决定其大小


    因此,您可能需要考虑一种不同的方法

    我认为,您的容器视图控制器没有ChildViewController。他们可能有子视图。你能核实一下吗?是的,他们每个人都有自己的观点。很抱歉,我没有说清楚。我的ContainerVC视图是一个滚动视图。。。