根据以下文档-[UIView setNeedsLayout]
:
由于此方法不会强制立即更新,而是等待下一个更新周期,因此您可以使用它在更新这些视图中的任何一个之前使多个视图的布局无效。此行为允许您将所有布局更新合并到一个更新周期,这通常对性能更好。
听起来不错 - 但是当我在setNeedsLayout
没有 then call的情况下使用时layoutIfNeeded
,我发现我的控件并没有自行布局。我曾希望在下一次显示控件之前会发生“更新周期”,但我想这不是它的工作原理。那么什么是“更新周期”?什么时候发生?