iOS视图布局:自动调整大小与自动布局详解
1. 视图默认布局行为
视图的默认布局行为取决于其创建方式:
- 代码创建 :代码创建并添加到界面的视图,默认使用自动调整大小(autoresizing),而非自动布局(autolayout)。若想让此类视图使用自动布局,必须特意禁止其使用自动调整大小。
- nib文件创建 :所有新的 .storyboard 和 .xib 文件默认启用自动布局,其视图已准备好使用自动布局。不过,nib编辑器中的视图若你愿意,仍可使用自动调整大小。
2. 自动调整大小(Autoresizing)
自动调整大小的概念是为子视图分配“弹簧(springs)”和“支柱(struts)”。弹簧可伸缩,支柱则不能。弹簧和支柱可在内部或外部、水平或垂直方向分配。通过两个内部弹簧或支柱,可指定视图是否以及如何调整大小;通过四个外部弹簧或支柱,可指定视图是否以及如何重新定位。以下是一些示例:
| 示例场景 | 外部弹簧/支柱 | 内部弹簧/支柱 |
| — | — | — |
| 子视图居中且随父视图调整大小 | 四个支柱 | 两个弹簧 |
| 子视图居中且不随父视图调整大小 | 四个弹簧 | 两个支柱 |
| OK按钮固定在父视图右下角 | 右侧和底部两个支柱,顶部和左侧两个弹簧 | 两个支柱 |
| 文本框固定在父视图顶部且随父视图变宽 | 三个支柱,底部一个弹簧 | 垂直支柱,水平弹簧 |
在代码中,弹簧和支柱的组合通过视图的
超级会员免费看
订阅专栏 解锁全文
85

被折叠的 条评论
为什么被折叠?



