比较layoutIfNeeded,layoutSubviews和
2018-12-05 本文已影响3人
ChancePro
- layoutIfNeeded 方法一旦被调用,主线程会立即强制重新布局,它从当前视图开始,一直到完成所有子视图的布局。
- layoutSubviews 用来自定义视图尺寸。它是系统自动调用的,开发者不能手动调用。我们能做的就是重写该方法,让系统在调整尺寸时能按照我们希望的效果进行布局。这个方法主要在屏幕旋转、滑动或触摸界面、修改子视图时被触发。
- setNeedsLayout 与 layoutIfNeeded 相似,唯一不同的就是它不会立刻强制视图重新布局,而是在下一个布局周期才会触发更新。它主要用在多个视图布局先后更新的场景下。例如,要在相关位置不断变化的点之间连一条线,这个线的布局就可以调用setNeedsLayout 方法。