- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在调用 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/
我已阅读 Apple 的 documentation关于这两种方法,但我还是不太明白。 有什么区别以及为什么我要使用 setNeedsUpdateConstraints 或 updateConstra
我读过 Apple 的 documentation关于这两种方法,但我还是不太明白。 有什么区别,为什么我要使用 setNeedsUpdateConstraints 或 updateConstrain
我正在调用 API。根据我返回的 json 数据,我正在 viewDidLoad() 中修改我的 View Controller ,以便更改我的 View 设计以尽可能最好地显示给定数据。 我所做的是
我知道自动布局链基本上包含 3 个不同的过程。 更新约束 布局 View (这里是我们计算帧的地方) 显示 我不太清楚-setNeedsLayout 和-setNeedsUpdateConstrain
我是一名优秀的程序员,十分优秀!