gpt4 book ai didi

ios - 当自动布局约束在 View Controller 生命周期中设置框架时?

转载 作者:技术小花猫 更新时间:2023-10-29 10:47:31 25 4
gpt4 key购买 nike

我使用了 Storyboard 中的自动布局约束。但是在某些情况下,我想计算 subview 的动态高度。我在 viewDidAppear() 中对此进行编码,它工作正常,因为在布局约束设置所有 View 框架之后调用此方法。这里的问题是我半秒能看到constraints设置的frame。然后代码重构 View 。

我开始了解 viewDidLayout(),它在约束设置框架后调用,以便我可以更改。但它不起作用。就像在使用约束之前调用此方法。

最佳答案

viewDidAppear 方法在 View 生命周期结束时调用。因此,如果您更改此处的约束,它将始终可见。

如果您想做的更改是一次性事件,那么您可以在方法viewWillAppear 中进行。但这并不总是有帮助,因为 View 绘制可能并不总是在此时完成。因此,更好的选择是将代码放在 viewWillLayoutSubviewsviewDidLayoutSubviews 中。

注意 viewWillLayoutSubviewsviewDidLayoutSubviews 将在 View 的生命周期中被多次调用,例如方向改变或移入和移出另一个 View 或任何框架更改。
如果您想在这里进行的代码更改是一次性事件,那么请确保使用标志。

例如:-

- (void)viewWillLayoutSubviews {    
if(firstTime) {
// put your constraint change code here.
}
}

希望对您有所帮助! :)

关于ios - 当自动布局约束在 View Controller 生命周期中设置框架时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36125101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com