在 UIViewController 中,我应该在 viewDidLoad 或 viewWillLayoutSubviews (或其他一些方法)中创建手动自动布局约束吗?
最佳答案
如果您希望您的约束只设置一次并希望它在整个 VC 生命周期中都存在,请在 ViewDidLoad
中创建它。
我从来没有遇到过这样的场景,你必须在 viewWillLayoutSubviews
中创建/应用约束,因为 viewWillLayoutSubviews
在 VC 和粗心代码的生命周期中被多次调用可能会导致多次应用相同的自动布局约束,如果您稍后尝试更新约束的常量值,这将是灾难的完美处方。
示例:
如果错误地添加了两个类似的约束,并且如果您没有意识到这一点并且仅保留对一个约束的引用,则更改它的常量值将导致其他约束失效。所以 viewWillLayoutSubviews 对我来说不是一个应用自动布局约束的好地方 :) 如果你出于某些原因想要不惜一切代价,确保你不会最终添加重复的约束。
or some other methods)?
这完全取决于您的要求,假设您希望仅在特定情况下应用某些约束,在这种情况下,您可以选择在需要时创建和应用约束,或者您可以在 viewDidLoad< 中创建所有约束
然后根据您的需要激活和停用这些限制。
关于ios - 在 UIViewController 中,我应该在 viewDidLoad 或 viewWillLayoutSubviews 中创建手动自动布局约束吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877635/