【发布时间】:2016-08-27 20:15:32
【问题描述】:
几周以来,我一直在这个问题上大发雷霆。在尝试了所有可能的NSLayoutConstraint 组合之后,我知道是时候问你们了:)
我的 MainViewController 有几个部分,用于新闻、朋友、个人资料等,就像用户活动的摘要页面一样。我想将这些不同的部分实现为单独的ViewControllers,否则它将混合苹果和梨。正确的?显然这些需要放在UIScrollView 内,因为它们会比屏幕高度长。
让一切变得更加困难的是,这些childViewControllers 的高度是可变长度的,并在运行时根据从服务器下载的内容决定。
您能否指导我制定有关如何构建此设计的正确策略?我想使用故事板。如果不可能,我也可以在代码中完成所有操作。我认为棘手的部分是设置MainViewController 的子视图的正确约束(UIScrollView、UIView、UIContainerView)并以某种方式在适当的位置传递ChildViewControllers 的高度。
我也很惊讶关于这个主题的信息如此之少。我一直认为这种设计在应用中一定很流行。
【问题讨论】:
-
我认为您应该在这些视图上设置固定高度约束,并根据您的需要更改该约束的常量值。
-
听起来你需要 UIStackView。它会根据内容的内在大小自动调整内容大小,甚至会为更改设置动画。你也可以把它放在 UIScrollView 中。
-
@almas 所以你说我应该为 childVCs 创建 IBOutlet 高度约束(它们需要占位符约束吗?)我将在哪里更新约束?在 childVC 的服务器调用中?
-
@Clafou 我会在您发表评论后查看
UIStackViews。但是由于iOS 9.0之前不支持,所以目前是我不得已的办法
标签: ios uiscrollview autolayout storyboard uicontainerview