繁体   English   中英

Autolayout约束随大小类更新

[英]Autolayout constraints update with size classes

我知道,如何完美地创建大小类的自动布局约束。

但我没有得到什么时候调用layOutIfNeeded()setNeedsDisplay()layOutSubViews()setUpdateConstraints()

有人可以说出更改约束后如何正确调用此函数来更新UI。

我还关心的另一个问题是,何时仅调用上述单个函数并与其他函数一起调用。

必须非常清楚的是,布局是通过在运行时的特定时间调用的例程来计算的。
您可能需要修改当前布局,例如更改特定约束的constant 如果您这样做,您会注意到UI中没有任何变化,这是因为该例程仍未被调用。
您可以执行的是强制调用布局例程,并且可以通过以下两种方法执行该操作:

  • setNeedsLayout :您告诉视图需要布局。 下次调用该例程时,知道该视图需要刷新布局
  • layOutIfNeeded() :您不想等待下一个调用,而是告诉系统尽快强制布局计算

setNeedsDisplay()displayIfNeeded()也会发生同样的事情,首先你要告诉你需要再次渲染一个视图,然后用你知道的第二个来尽快做。
如果你问自己为什么,原因就是表现。 每次重新渲染一切都没用,这种懒惰的方法将节省系统资源。
方法- setNeedsUpdateConstraints-updateConstraintsIfNeeded基本上是应用于约束的相同概念,不同之处在于,在强制布局之前,您不会看到UI中的任何更改,为什么这种方法有用? 因为有时您需要在约束更改后进行检查,如果布局仍然有效而不更改UI的方面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM