关于布局
预计 2 分钟
关于布局的一些知识。更新中,如有错误欢迎指出。
正文
layoutSubviews 什么时候被调用
- init(frame: CGRect) 且 frame 不为 CGRectZero
- addSubview
- 设置 frame 且与之前的 frame 不同
- 滚动 UIScrollView
- 旋转屏幕触发父 UIView 的 layoutSubviews
- 更改 view 的大小也会触发父 UIView 的 layoutSubviews
layoutIfNeeded 和 setNeedsLayout
- layoutIfNeeded 是在如果有更新布局标记的情况下马上布局
- setNeedsLayout 是添加一个更新布局的标记,然后在恰当的时候调用 layoutIfNeeded
尺寸什么时候是确定的
- 在调用 layoutSubviews 的时候,尺寸已经是精确的
- 在控制器中,可以在 viewDidLayoutSubviews 中进行一些与 view 尺寸相关的布局,此时尺寸是精确的
- 在 awakeFromNib 中,控件的尺寸是 xib 文件中的尺寸,此时尺寸是不精确的(针对某个屏幕大小进行布局或尺寸计算等)
#学习笔记
#技术
#开发
#Swift
#iOS