我调用API。根据我回来的json数据,我正在执行我的视图控制器viewDidLoad()
,以便将视图设计更改为以最佳方式显示给定数据。迅速没把握layoutIfNeeded setNeedsUpdateConstraints或updateConstraints setNeedsLayout
我做的是隐藏一些uiViews并设置其约束条件是。主动= false,但也改变了一些约束,例如通过:刚刚闭幕的viewDidLoad(),我改变之前
let noCButton = NSLayoutConstraint(item: aListTop, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: aListBottom, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
view.addConstraint(noBidButton)
然后/禁用一些限制,我叫view.layoutIfNeeded()
所以我现在的问题是,
如果我改变/禁用某些限制或隐藏一个UIView,我应该始终调用view.layoutIfNeeded()
后来呢?
另外,是否需要在每次更改后立即调用view.layoutIfNeeded()
,或者我可以在关闭viewDidLoad()之前调用它一次吗?
我不明白我的控制台无论哪种方式的任何错误,但我只是想确认我在做正确的方式。我也注意到功能,如updateConstraints
但layoutIfNeeded似乎工作,寿即时消息不是100%肯定的差异提前
感谢,
为什么不能我就跑view.layoutIfNeeded()?它现在不输出任何错误。而且,因为我只是在进行更改,因此我只能在viewDidLoad – user2722667
中进行更改。很抱歉,没有看到您的修改。好,谢谢!然后,我将在viewDidLoad中调用view.setNeedsLayout()?因为我没有让我的变化,我不想,直到我已经把我的变化 – user2722667
你可能甚至不需要调用setNeedsLayout,因为这将viewDidLoad中之后进行反正显示视图。 – jervine10