具有自动布局的多个动态视图

Posted

技术标签:

【中文标题】具有自动布局的多个动态视图【英文标题】:Multiple Numbers of dynamic Views with Autolayout 【发布时间】:2015-07-28 13:13:44 【问题描述】:

如您所见,我尝试构建一些完全动态的可点击视图(使用 IB 和自动布局)。我从服务器获取数据,所以在响应到达之前,我不知道我必须显示哪个视图以及应该隐藏哪些视图。

问题是,我在运行时不需要的视图不仅应该被隐藏,而且应该从tableHeaderView 中完全删除,这样被删除的视图下的视图就会出现。我知道在运行时删除Constraints 不是最佳选择,所以我尝试为四个视图设置一个固定高度(作为 NSLayoutConstraint),如果我不需要这些视图之一,我将Height Constraint 设置为零喜欢:

self.hotlineViewHeightConstraint.constant = 0.0f;

这很好用,但现在所有的子视图都出了问题(UIImageView 和标签)。因为 UIImageView 也有固定的高度和一些标签。最后但并非最不重要的一点是,标签与其父视图之间的垂直约束也是一个问题,因为它们不会自动缩小到零。我还尝试使用子视图约束的优先级,它仍然“有效”,但警告仍然存在。任何想法如何在不制作大量 NSLayoutConstraint 并将一切设置为零的情况下完成这项工作??

上面屏幕截图中的四个视图是最大视图数,因此它的视图数等于或小于此值。

【问题讨论】:

【参考方案1】:

您是否考虑过将所有这些都放在另一个 UITableview 中。

【讨论】:

通常是个好主意,但是这些视图是 tableHeaderView 的一部分,所以我认为这不会起作用! 为什么这需要成为你的 headerView,你可以把这些单元格放到第 1 部分。 这是因为设计,但它似乎是目前唯一的选择,所以我会试一试!谢谢!

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

具有动态指定视图之间间距的自动布局

UITableViewCell 具有嵌入式垂直堆栈视图设置,具有自动布局和动态高度

视图中具有多个单元格标识符的自动布局 UITableViewCell

具有单个 uiviewcontroller 和多个视图的自动布局 iOS

如何使用自动布局使超级视图适合最大的内在大小子视图

使用自动布局将具有不同高度的多个视图居中