具有自动布局的动态 uiview 布局

Posted

技术标签:

【中文标题】具有自动布局的动态 uiview 布局【英文标题】:Dynamic uiview layout with auto layout 【发布时间】:2013-04-22 19:43:40 【问题描述】:

我正在使用自动布局,到目前为止它进展顺利,但现在我对如何继续实现我想要的设计感到迷茫。

我收到了一份包含 2 个部分的小型问卷。每个部分都嵌入在自己的 UIView 中,每个部分的视图包含每个问题的 uiview。

我的问题是,我想动态添加问题,说当用户在问题 1 中输入某个输入时,只显示第 1 部分的问题 2。

我首先尝试通过对问题视图使用 addsubview 并使用 setFrame 动态重置该部分的框架来显示每个部分:在意识到此方法不适用于自动布局之前(例如,因为我的问卷包含在一个滚动视图,滚动将调用滚动视图上的 loadsubviews 方法并将部分的视图重置为其原始大小...)

实现这一目标的正确方法是什么?也许使用可变大小的表格视图?还是以编程方式创建 layoutconstraint?

【问题讨论】:

在我看来使用 tableview 会容易得多 是的,我正在尝试使用 staticell tableview 并简单地调整 tableviewsize 的大小,并根据显示的问题数量(也隐藏未显示的问题单元格)使用高度约束实现这一目标的简单方法。我觉得它有点骇人听闻,但是如果它使我免于以编程方式添加约束... 所有你需要做的就是为单个问题创建一个tableviewcell,然后每个“部分”都是一个表格视图部分,并且该部分中的每一行都是一个问题,没有动态调整大小的限制完全需要 【参考方案1】:

我最终做的是 Dan F 建议使用 tableview。我在这篇精彩的帖子https://***.com/a/12574544/865632 中使用了答案在视图容器中创建静态表视图,允许我拥有静态单元格 uitableview,而无需将我的主视图控制器与虚拟表控制器集群

【讨论】:

以上是关于具有自动布局的动态 uiview 布局的主要内容,如果未能解决你的问题,请参考以下文章

具有动态视图数量和自动布局 iOS6 的 UIScrollView

具有自动布局的 UIScrollView 中的动态大小的 UITableView

iOS自动布局两个UIView具有相等的宽度

在具有自动布局的 UIView 之间切换

“隐藏”具有自动布局子视图的 UIView

UIView 无法在具有自动布局的 UIScrollView 中正确居中