以编程方式向 UIView 或 UIViewController 添加约束?

Posted

技术标签:

【中文标题】以编程方式向 UIView 或 UIViewController 添加约束?【英文标题】:Programmatically add constraints to UIView or UIViewController? 【发布时间】:2014-06-05 06:12:26 【问题描述】:

我在没有 Interface Builder 的情况下工作。我有一个扩展 UIView 的自定义视图和一个扩展 UIViewController 的自定义控制器。

我的问题是 - 我应该在 UIView.updateConstraints 还是 UIViewController.viewDidLoad 中添加约束?

似乎 UIView.updateConstraints 是正确的地方,但是我在 UIViewController.viewDidLoad 中看到很多代码示例。另外,如果我想限制topLayoutGuide,那是viewController上的一个属性……所以现在我必须弄清楚如何访问视图中的viewController。呸。

但是在 viewController 中进行布局(视图类型工作)似乎并不正确。例如,如果您使用 IB,则会将约束添加到视图中。

有什么建议吗?

【问题讨论】:

【参考方案1】:

如果约束范围在视图内,则将其放在 updateConstraints 内。

还请探索在视图控制器中更新约束

 -(void) updateViewConstraints

方法。

【讨论】:

以上是关于以编程方式向 UIView 或 UIViewController 添加约束?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式向 UIView 添加约束

UISlider 约束以编程方式:“约束项必须每个都是 UIView 或子类的实例”

以编程方式创建具有多个标签的 UIView

如何在 Swift 中以编程方式从 UIView 中删除安全区域?

当我尝试以编程方式添加 UIView 时,UITableViewCell 高度不会自动调整(而是压扁我的 UIView)

如何以编程方式将文本添加到 UIView