MasonryMasonry
指南
  • Objective-C API
  • Swift API
示例
更新日志
  • English
  • 简体中文
GitHub
指南
  • Objective-C API
  • Swift API
示例
更新日志
  • English
  • 简体中文
GitHub
  • API 参考

    • Objective-C API 参考
    • Swift API 参考

Objective-C API 参考

提示

API 参考文档中的代码示例为通用内容,建议参阅 英文版 API 参考 获取完整文档。

本页面记录了 Masonry 框架中核心的 Objective-C 类和分类。

View+MASAdditions

UIView / NSView 上的主要分类,提供约束创建方法。

视图属性

返回 MASViewAttribute 对象的属性,用于构建约束:

属性NSLayoutAttribute
mas_leftNSLayoutAttributeLeft
mas_rightNSLayoutAttributeRight
mas_topNSLayoutAttributeTop
mas_bottomNSLayoutAttributeBottom
mas_leadingNSLayoutAttributeLeading
mas_trailingNSLayoutAttributeTrailing
mas_widthNSLayoutAttributeWidth
mas_heightNSLayoutAttributeHeight
mas_centerXNSLayoutAttributeCenterX
mas_centerYNSLayoutAttributeCenterY
mas_baselineNSLayoutAttributeBaseline

约束方法

方法说明
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() 保持不变,此变更不影响使用方。

在 GitHub 上编辑此页
上次更新: 2026/3/30 06:37
贡献者: samzhjiang
Next
Swift API 参考