layoutIfNeeded setNeedsLayout layoutSubviews 区别
layoutSubviews
- 可按需要重写内部函数
- init初始化不会触发layoutSubviews
- addSubview会触发layoutSubviews
- 设置view的Frame并发生变化会触发layoutSubviews
- 滚动一个UIScrollView会触发layoutSubviews
- 旋转Screen会触发父UIView上的layoutSubviews
- 改变子类UIView大小,触发父UIView上的layoutSubviews事件
[self.view layoutSubviews];
setNeedsLayout
- 改变系统刷新标记位
- 会异步调用layoutSubviews
[self.view setNeedsLayout];
layoutIfNeeded
- 立即刷新显示内容
[self.view layoutIfNeeded];