gpt4 book ai didi

ios - swift 不确定 layoutIfNeeded setNeedsUpdateConstraints 或 updateConstraints setNeedsLayout

转载 作者:可可西里 更新时间:2023-11-01 01:05:33 28 4
gpt4 key购买 nike

我正在调用 API。根据我返回的 json 数据,我正在 viewDidLoad() 中修改我的 View Controller ,以便更改我的 View 设计以尽可能最好地显示给定数据。

我所做的是隐藏一些 uiViews 并将它们的约束设置为 .active = false 但也改变了一些约束,例如:

let noCButton = NSLayoutConstraint(item: aListTop, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: aListBottom, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
view.addConstraint(noBidButton)

然后就在关闭 viewDidLoad() 之前,我更改/禁用了一些约束,我调用了 view.layoutIfNeeded()

所以我现在的问题是,

如果我更改/禁用某些约束或隐藏 uiview,我是否应该始终在之后调用 view.layoutIfNeeded()

此外,我是否需要在每次更改后立即调用 view.layoutIfNeeded() 还是我可以在关闭 viewDidLoad() 之前简单地调用一次?

无论哪种方式,我的控制台都没有出现任何错误,但我只是想确保我以正确的方式进行操作。我还注意到像 updateConstraints 这样的函数,但是 layoutIfNeeded 似乎可以工作,但我不是 100% 确定其中的区别

提前致谢

最佳答案

我会调用 view.setNeedsUpdateConstraints()。在 viewDidLoad() 之后,应该会自动调用 viewWillLayoutSubviews()。这应该是您此时需要做的全部。

如果您需要强制 View 立即更新,请调用 view.layoutIfNeeded(),如果您想要进行一组更改,然后在下一个布局阶段应用它们,只需调用 view.setNeedsLayout() 在所有更改的末尾。

关于ios - swift 不确定 layoutIfNeeded setNeedsUpdateConstraints 或 updateConstraints setNeedsLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31548885/

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