Ios 具有多个containerView和x27的自动布局;UIScrollView中的动态高度s

Ios 具有多个containerView和x27的自动布局;UIScrollView中的动态高度s,ios,uiscrollview,autolayout,storyboard,uicontainerview,Ios,Uiscrollview,Autolayout,Storyboard,Uicontainerview,几周来我一直在为这件事发火。我知道在尝试了所有NSLayoutConstraint可能的组合后,是时候问问你们了:) 我的MainViewController有几个部分用于新闻、朋友、个人资料等,就像用户活动的摘要页面一样。我想将这些不同的部分实现为独立的ViewControllers,否则它将是苹果和梨的混合。对吗?显然,它们需要放在UIScrollView中,因为它们会比屏幕高度长 让一切变得更困难的一件事是,这些childViewControllers的高度是可变的,在运行时根据从服务器下

几周来我一直在为这件事发火。我知道在尝试了所有
NSLayoutConstraint
可能的组合后,是时候问问你们了:)

我的MainViewController有几个部分用于新闻、朋友、个人资料等,就像用户活动的摘要页面一样。我想将这些不同的部分实现为独立的
ViewController
s,否则它将是苹果和梨的混合。对吗?显然,它们需要放在
UIScrollView
中,因为它们会比屏幕高度长

让一切变得更困难的一件事是,这些
childViewController
s的高度是可变的,在运行时根据从服务器下载的内容决定

你能告诉我如何设计这个设计的正确策略吗?我想用故事板。如果不可能,我也可以在代码中完成所有操作。我认为棘手的部分是设置
MainViewController
子视图(
uicrollview
UIView
UIContainerView
)的正确约束,并在适当的位置传递
ChildViewController
的高度


我也很惊讶关于这个问题的信息是如此之少。我一直认为这种设计在应用程序中一定非常流行。

根据我使用
UIScrollView
的经验,我几乎99%的情况下都不推荐它们。它们很难与自动布局一起使用,并且很容易被微小的更改破坏。在IB中使用它们也非常烦人,因为你不能滚动它的内容

对于这种设计,我宁愿使用带有静态单元格的
UITableView
(基于您的视图将包含每个项目/人员的相同信息的假设);每个包含不同视图控制器的容器视图


这意味着您不必太担心自动布局,一旦内容发生变化,您的单元格就会自动调整大小。

根据我使用
UIScrollView
的经验,在几乎99%的情况下,我不推荐使用它们。它们很难与自动布局一起使用,并且很容易被微小的更改破坏。在IB中使用它们也非常烦人,因为你不能滚动它的内容

对于这种设计,我宁愿使用带有静态单元格的
UITableView
(基于您的视图将包含每个项目/人员的相同信息的假设);每个包含不同视图控制器的容器视图


这意味着您不必太担心自动布局,一旦内容发生变化,您的单元格应该自动调整大小。

我认为您应该在这些视图上设置固定高度约束,并根据需要更改该约束的常量值。听起来您需要自定义视图。它根据内容的固有大小自动调整内容大小,甚至设置更改的动画。您也可以将其放在UIScrollView中。@almas您是说我应该为childVCs创建IBOutlet高度约束(它们是否需要成为占位符约束?),我将在哪里更新约束?在childVC的服务器调用中?@Clafou在您的评论之后,我将查看
UIStackView
s。但是,由于iOS 9.0之前不支持它,所以这是我目前的最后手段。我认为您应该在这些视图上设置固定高度约束,并根据需要更改该约束的常量值。听起来您需要使用UIStackView。它根据内容的固有大小自动调整内容大小,甚至设置更改的动画。您也可以将其放在UIScrollView中。@almas您是说我应该为childVCs创建IBOutlet高度约束(它们是否需要成为占位符约束?),我将在哪里更新约束?在childVC的服务器调用中?@Clafou在您的评论之后,我将查看
UIStackView
s。但由于它在iOS 9.0之前不受支持,这是我目前最后的选择