Autolayout Dumbness(我的)?

时间:2014-12-05 23:42:20

标签: ios autolayout

我在我的一个项目中使用自动布局,并且遇到了我认为应该是一项微不足道的任务的麻烦。

举个例子,我有两个文本框在彼此之下。我在两点之间创建了一个垂直间距约束,共5个点。

我希望如果我移动顶部文本框(使用setFrame),约束意味着底部会自动移动它以强制执行约束吗?

我的想法是否正确?或者我是否以不应该使用的方式使用自动布局。即。我误解了它的目的。或者我应该使用除setFrame以外的其他方式移动顶部文本框?

任何输入都会很棒。在此先感谢: - )

PS。我玩过使用:setTranslatesAutoresizingMaskIntoConstraints似乎有效。但是,这似乎不是正确的方法。我最初的想法是,自动布局应该用很少的代码处理大小/位置关系,在这种情况下,我希望它将用零代码处理。

1 个答案:

答案 0 :(得分:1)

您不能使用setFrame来执行此操作。自动布局决定帧。如果在约束未自动更新之后更改它。

您可以获得对顶部框决定Y位置(以编程方式创建或使用IBOutlet)并更改其值的约束的引用。这将触发更新以重新计算所有内容的位置并再次运行布局。

您可以通过更改NSLayoutConstraint对象上的常量属性的值来实现。

Reference Docs Here