使用自动布局约束动态创建视图?在Objective-C中?

Posted

技术标签:

【中文标题】使用自动布局约束动态创建视图?在Objective-C中?【英文标题】:Creating views dynamically with autolayout constraints? in Objective-C? 【发布时间】:2016-11-03 06:45:05 【问题描述】: UIStackView(主) UIView(子) UILabel、UIButton 等 UIview(子) 可能是其他人的看法

所有这些都以编程方式带有约束。并且可能是 UILabel 的 UIView 或 UIButtons 被创建成循环。一个接一个。

请帮忙!!

【问题讨论】:

为什么不使用UITableViewUICollectionView?它们简化了子视图的创建和布局以及更好的内存使用。它们都是为显示动态子视图计数而设计的。 b'coz 我想创建动态。我不知道哪种 UI 类型成为第一个或最后一个。但是每个视图都在它的超级视图中,并且可能是可扩展的。 即使经过您的解释,我也没有理由不使用集合或表格视图。 我的观点不固定,也不固定。这也取决于服务器响应和 UI 类型。 表格和集合视图是为动态数量的子视图设计的,您可以随时更改显示单元格的数量而无需重新加载完整视图。您可以拥有具有完全不同布局的多种单元格类型。如果您的堆栈视图中有太多子视图,您将遇到严重的内存和性能问题,而表格和集合视图将毫无问题地处理大量单元格。 【参考方案1】:

如果您想以编程方式创建这些视图,我会推荐这两个库。它们使添加/删除/更新/管理约束变得非常容易。

Objective-c

https://github.com/SnapKit/Masonry

斯威夫特

https://github.com/SnapKit/SnapKit

【讨论】:

【参考方案2】:

您可以使用 Apple Native NSLayoutAnchor 以编程方式创建约束。就像 SnapKit/Masonry 一样简单。

【讨论】:

以上是关于使用自动布局约束动态创建视图?在Objective-C中?的主要内容,如果未能解决你的问题,请参考以下文章

动态调整视图大小(拖动运动)时自动布局约束中断

使用自动布局约束动态调整表格视图单元格的大小

如何使用自动布局动态更改超级视图的高度

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

在 Objective C 中使用自动布局分离纵向和横向视图

在具有自动布局的 UITableViewCell 中动态调整大小的 UIWebView - 违反约束