gpt4 book ai didi

iOS AutoLayout - 它什么时候运行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:48 25 4
gpt4 key购买 nike

我有一个 XIB 文件,我在其中指定了设计时的约束。除了带约束的控件外,我还希望在运行时以编程方式定位 XIB 中没有约束的控件。

我通过在 didRotateFromInterfaceOrientation 中手动重新定位 View 来做到这一点。

当我旋转设备时,我的代码放置了手动控制的控件,但随后自动布局似乎弄乱了界面构建器中没有约束的手动控件的放置。

问题 - 如果我旋转设备,自动布局究竟何时运行。

最佳答案

在 View 上调用 setNeedsLayout 后,自动布局在运行循环结束时运行,或者在 setNeedsLayout 后跟 layoutIfNeeded 时立即运行.请注意,有许多方法在其实现中可能会调用setNeedsLayout,例如addSubview:removeFromSuperview等。

一些建议:

不要在 didRotateFromInterfaceOrientation: 中更新您的约束,而是尝试在 updateViewConstraints 中这样做。

您可能还想在 Interface Builder 中将占位符约束添加到您将以编程方式定位的 View 。我认为如果未设置占位符约束,IB 会自动将 View 限制在 x/y 位置,但我对此不是 100% 确定。

关于iOS AutoLayout - 它什么时候运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569104/

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