如果在界面构建器中更改视图框,则可以点击第3个图标(或在菜单中 - 编辑/解决Autolayout问题/更新约束)并更新所有约束以适应新框架。有没有办法以编程方式做到这一点?
示例:
var newFrame = view.frame
newFrame.offset(dx: 20, dy: 35)
view.frame = newFrame
// Here comes required method like view.updateConstraints()
P.S。
我知道我可以为约束设置出口或设置新约束,但我确实需要更新现有约束。
答案 0 :(得分:0)
不,但这是translatesAutoresizingMaskIntoConstraints
启用时的功能,或多或少。问题在于,当superview的边界发生变化时,它生成的约束只保留最后一次设置框架的视图,并根据其自动调整模板进行调整。
如果这些限制适合您的需求,您应该使用它。如果他们不是,那么你需要按照你似乎知道的方式去做但不想这样做。