在UIView布局中,什么是"更新周期"?

Sim*_*mon 6 uiview

根据该文件-[UIView setNeedsLayout]:

由于此方法不强制立即更新,而是等待下一个更新周期,因此可以在更新任何视图之前使用它来使多个视图的布局无效.此行为允许您将所有布局更新合并到一个更新周期,这通常会提高性能.

听起来很棒 - 但是当我在setNeedsLayout没有打电话的情况下使用时layoutIfNeeded,我发现我的控制并没有自行解决.我曾希望在下次显示控件之前会发生"更新周期",但我想这不是它的工作原理.那么什么是"更新周期"?什么时候发生?

Nic*_*ell 3

“更新周期”发生在当前运行循环周期结束时。

setNeedsLayout 必须在主线程(主运行循环)上调用。