常见布局模式
提示
代码示例为通用内容,建议参阅 英文版示例 获取完整文档。
边缘固定
将视图固定到父视图的所有边缘:
::: code-group
[childView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(superview);
}];
childView.mas.makeConstraints { make in
make.edges.equalTo(superview)
}
:::
居中
在父视图中居中:
::: code-group
[childView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(superview);
make.size.mas_equalTo(CGSizeMake(200, 100));
}];
childView.mas.makeConstraints { make in
make.center.equalTo(superview)
make.size.equalTo(CGSize(width: 200, height: 100))
}
:::
宽高比
保持宽高比:
::: code-group
[imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(superview);
make.height.equalTo(imageView.mas_width).multipliedBy(9.0 / 16.0);
}];
imageView.mas.makeConstraints { make in
make.width.equalTo(superview)
make.height.equalTo(imageView.mas.width).multipliedBy(9.0 / 16.0)
}
:::
安全区域布局
固定到安全区域(iOS 11+):
::: code-group
[contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.mas_safeAreaLayoutGuideTop);
make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
make.leading.equalTo(self.view.mas_safeAreaLayoutGuideLeading);
make.trailing.equalTo(self.view.mas_safeAreaLayoutGuideTrailing);
}];
contentView.mas.makeConstraints { make in
make.top.equalTo(view.mas.safeAreaLayoutGuideTop)
make.bottom.equalTo(view.mas.safeAreaLayoutGuideBottom)
make.leading.equalTo(view.mas.safeAreaLayoutGuideLeading)
make.trailing.equalTo(view.mas.safeAreaLayoutGuideTrailing)
}
:::