我在我的一个项目中使用了自动布局,但在我认为应该是一项微不足道的任务时遇到了麻烦。
例如,我有两个文本框彼此下方。我在两者之间创建了一个 5 点的垂直间距约束。
我希望如果我移动顶部的文本框(使用 setFrame),约束将意味着底部的文本框会自动移动以强制执行约束?
我的想法对吗?还是我以一种不应该的方式使用自动布局。 IE。我误解了它的目的。或者我应该使用 setFrame 以外的其他方式移动顶部文本框吗?
任何输入都会很棒。提前致谢:-)
附言。我玩过 using: setTranslatesAutoresizingMaskIntoConstraints 这似乎有效。但是,这似乎不是执行此操作的正确方法。我最初的想法是自动布局应该用很少的代码处理大小/位置关系,在这种情况下,我希望它可以用零代码处理。
最佳答案
您不能使用 setFrame 来执行此操作。自动布局决定框架。如果您在事后更改它,约束不会自动更新。
您可以获得对决定顶部框的 Y 位置(以编程方式创建它或使用 IBOutlet 时)的约束的引用并更改其值。这将触发更新以重新计算所有内容的位置并再次运行布局。
您可以通过更改 NSLayoutConstraint 对象上常量属性的值来实现。
关于ios - 自动布局愚蠢(我的)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326465/