Objective-C API 参考
提示
API 参考文档中的代码示例为通用内容,建议参阅 英文版 API 参考 获取完整文档。
本页面记录了 Masonry 框架中核心的 Objective-C 类和分类。
View+MASAdditions
UIView / NSView 上的主要分类,提供约束创建方法。
视图属性
返回 MASViewAttribute 对象的属性,用于构建约束:
| 属性 | NSLayoutAttribute |
|---|---|
mas_left | NSLayoutAttributeLeft |
mas_right | NSLayoutAttributeRight |
mas_top | NSLayoutAttributeTop |
mas_bottom | NSLayoutAttributeBottom |
mas_leading | NSLayoutAttributeLeading |
mas_trailing | NSLayoutAttributeTrailing |
mas_width | NSLayoutAttributeWidth |
mas_height | NSLayoutAttributeHeight |
mas_centerX | NSLayoutAttributeCenterX |
mas_centerY | NSLayoutAttributeCenterY |
mas_baseline | NSLayoutAttributeBaseline |
约束方法
| 方法 | 说明 |
|---|---|
mas_makeConstraints: | 创建并安装约束 |
mas_updateConstraints: | 更新已有约束(不存在则创建) |
mas_remakeConstraints: | 移除所有已有约束并重新创建 |
mas_prepareConstraints: | 创建约束但不安装 |
MASConstraintMaker
传入约束块的构建器对象,提供属性用于构建约束。
属性
| 属性 | 说明 |
|---|---|
left / right / top / bottom | 边缘 |
leading / trailing | 前导/尾随 |
width / height | 宽高 |
centerX / centerY | 中心 |
edges | 四条边(top + left + bottom + right) |
size | 尺寸(width + height) |
center | 中心(centerX + centerY) |
MASConstraint
约束对象,支持链式调用设置关系、偏移、优先级等。
关系方法
.equalTo— 等于.greaterThanOrEqualTo— 大于等于.lessThanOrEqualTo— 小于等于
父视图关系方法
以函数调用风格设置与父视图对应属性的约束关系:
.equalToSuperview()— 等于父视图.greaterThanOrEqualToSuperview()— 大于等于父视图.lessThanOrEqualToSuperview()— 小于等于父视图
对应的 mas_ 前缀宏会自动记录调试信息(文件名和行号):
make.top.left.bottom.mas_equalToSuperview();
make.width.mas_greaterThanOrEqualToSuperview();
make.height.mas_lessThanOrEqualToSuperview();
修饰方法
| 方法 | 说明 |
|---|---|
.offset(CGFloat) | 设置偏移量 |
.insets(MASEdgeInsets) | 设置边距 |
.multipliedBy(CGFloat) | 设置乘数 |
.priority(MASLayoutPriority) | 设置优先级 |
.key(id) | 设置调试标识 |
自动装箱宏
MASBoxValue 宏用于将标量和结构体值自动包装为 NSValue,供 mas_equalTo() 等宏内部使用:
make.top.mas_equalTo(42); // NSNumber
make.size.mas_equalTo(CGSizeMake(100, 50)); // NSValue (CGSize)
make.edges.mas_equalTo(UIEdgeInsetsMake(10, 10, 10, 10)); // NSValue (UIEdgeInsets)
内部变更(v1.3.6)
MASBoxValue 宏的内部实现函数从 _MASBoxValue 重命名为 masBoxValue,以符合命名规范。宏的公共接口 MASBoxValue() 保持不变,此变更不影响使用方。