我们应该在哪里放置自动布局代码



我通常在视图控制器的updateCOnstratins方法中设置所有自动布局代码,以约束定义视图的所有子类。然后在子视图中,我将约束放在那里的 updateConstraint 方法中。这使我拥有类中每个视图的属性,因此我可以在以后设置翻译后引用它。到假。但是我读到您不必在更新约束中设置它。只是不是我读过一篇文章,其中有人说苹果工程师说,如果约束只进行一次,那么你几乎可以将它们放在任何地方。但是,如果您在视图生命周期中存在更改的约束,请将它们放在 updateConstraint 中?以下是 http://swiftandpainless.com/where-to-put-the-auto-layout-code/http://swiftandpainless.com/dont-put-view-code-into-your-view-controller/的链接。

那么它应该去哪里呢?这只是一种旧的做法,现在它已经改变了吗?

你在帖子中所说的是你通常想要做的。 将可能更改的任何约束放入updateConstraints 中。这也意味着您应该保留对它们的引用,以便能够更新它们或删除/替换它们。任何静态的都可以放在初始化代码之后(例如,UIViewinit方法或UIViewControllerviewDidLoad方法(。唯一真正的要求是,您只能将约束添加到实际位于视图层次结构中的视图,因此在添加适当的视图之后的任何时候都可以。

通常没有理由不将约束创建代码放在 viewDidLoad 中,这样做的优点是只调用一次。对于更改的约束,我喜欢将该代码与直接导致更改的任何内容相关联,例如大小类的更改或删除或插入视图。

最新更新