有没有办法改变视图框架并以编程方式更新IB中的约束?

时间:2015-03-01 03:23:26

标签: ios autolayout constraints

如果在界面构建器中更改视图框,则可以点击第3个图标(或在菜单中 - 编辑/解决Autolayout问题/更新约束)并更新所有约束以适应新框架。有没有办法以编程方式做到这一点?

示例:

var newFrame = view.frame
newFrame.offset(dx: 20, dy: 35)
view.frame = newFrame

// Here comes required method like view.updateConstraints()

P.S。

我知道我可以为约束设置出口或设置新约束,但我确实需要更新现有约束。

1 个答案:

答案 0 :(得分:0)

不,但这是translatesAutoresizingMaskIntoConstraints启用时的功能,或多或少。问题在于,当superview的边界发生变化时,它生成的约束只保留最后一次设置框架的视图,并根据其自动调整模板进行调整。

如果这些限制适合您的需求,您应该使用它。如果他们不是,那么你需要按照你似乎知道的方式去做但不想这样做。