繁体   English   中英

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

[英]Is there any way to change view frame and programmatically update constraints like in IB?

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

例:

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

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

PS

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM