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

更新日志

Masonry 的所有重要变更记录在此。

English Changelog

v1.3.6

内部函数命名规范化

将内部 C 函数和静态变量重命名以符合编码规范:

  • _MASBoxValue() → masBoxValue()
  • _MASExpectBoxValue() → masExpectBoxValue()(测试辅助)
  • kInstalledConstraintsKey → gInstalledConstraintsKey

MASBoxValue 宏的公共 API 不受影响,仅底层实现函数名称变更。

ObjC 头文件注解位置调整

MASConstraint.h 中 MAS_SWIFT_UI_ACTOR 宏移至类文档注释之前,确保 Swift 端正确继承 @MainActor 标注。

全面补充文档注释

为 ObjC 和 Swift 源文件中的属性、接口、头文件添加了文档注释,覆盖范围包括:

  • 核心模块:MASViewConstraint、MASCompositeConstraint、MASConstraint 的私有属性
  • 示例工程:所有 ObjC 示例视图的头文件和私有属性
  • 测试辅助:MASTestExpectation、MASConstraintDelegateMock 的属性和匹配器

代码风格与 Lint 修复

  • ObjC:修复长行拆分、移除多余分号、补充版权声明、添加 NOLINT 注释说明宏命名
  • Swift:添加 swiftlint:disable 指令(file_name、force_unwrapping、implicitly_unwrapped_optional)、数字字面量使用下划线分隔符(1000 → 1_000)
  • Swift 示例:将强制解包 topRow.first! 改为安全解包 if let
  • CSS:简化值写法(#ffffff → #fff、0.95rem → .95rem)
  • SPM:补充数组尾逗号以符合风格规范

v1.3.5

破坏性变更:统一 superview 方法调用风格

将 equalToSuperview、greaterThanOrEqualToSuperview 和 lessThanOrEqualToSuperview 从属性风格方法改为返回 block 的方法,统一为 .equalToSuperview() 函数调用风格。

迁移方式: 添加括号 — constraint.equalToSuperview → constraint.equalToSuperview()。

新增 superview 方法的 WithLocation 版本

新增 equalToSuperviewWithLocation、greaterThanOrEqualToSuperviewWithLocation 和 lessThanOrEqualToSuperviewWithLocation 方法,自动记录调试信息。

新增 mas_greaterThanOrEqualToSuperview() 和 mas_lessThanOrEqualToSuperview() 宏

三个 superview 宏均调用 WithLocation 版本以自动记录调试信息。mas_equalToSuperview() 从属性别名更新为函数调用风格。

保持 Swift DSL 兼容性

superview 方法标注 NS_REFINED_FOR_SWIFT,在 ConstraintProxy.swift 中提供显式包装方法。Swift API 保持不变。


v1.3.4

恢复 Swift 中的 mas_ 前缀并添加废弃引导

回退了 v1.3.3 中引入的 NS_SWIFT_NAME 重命名,改用 NS_REFINED_FOR_SWIFT。ObjC 属性和方法现在通过 MASViewDSL 代理重新暴露(view.mas.left、view.mas.makeConstraints { … })。

扩展运算符重载以支持更多 Swift 类型

新增了 ==、>=、<= 运算符对 Int、Double、CGSize、CGPoint 和 UIEdgeInsets/NSEdgeInsets 的重载。

boxValue 及约束方法不再接受可选类型

提升了类型安全性,消除了隐藏的运行时反射开销。

提升测试覆盖率

为 ObjC 和 Swift 模块新增了大量单元测试。


v1.3.3

重构 MasonrySwift:移除包装类,改用直接扩展

通过 NS_SWIFT_NAME 重命名 ObjC 类型

类型安全的运算符重载

新增 labeled(_:) 和 priority(_: MASConstraintPriority) 便捷方法

新增外部约束更新方法


v1.3.2

新增 Apple 隐私清单(PrivacyInfo.xcprivacy)

新增 Swift Xcode 代码片段

key 方法签名变更

清理遗留文件


v1.3.1

新增 MASConstraintConvertible 协议

Debug 信息增强


v1.3.0

MasonrySwift API 全面对齐 SnapKit

新增 equalToSuperView 便捷方法

性能优化

迁移至 GitHub Actions


v1.2.x

  • v1.2.3: 目录结构调整
  • v1.2.2: 修复圈复杂度问题
  • v1.2.1: 新增 MASAttributeOffset 运算符
  • v1.2.0: Swift Package Manager 支持、Swift 强化支持、现代化改造

v1.0.x

  • v1.0.2: 修复数组约束 bug、提升视图分布性能
  • v1.0.1: 新增 first/last baseline 支持
  • v1.0.0: 正式发布 v1.0.0

更早版本

  • v0.6.x: tvOS 支持、视图分布、iOS 8 margin 属性、Carthage 支持
  • v0.5.x: 修复编译错误、新增 mas_remakeConstraints、自动装箱、属性链式调用
  • v0.4.0: 修复 Xcode 自动补全支持
  • v0.3.x: Mac OSX animator proxy、数组约束支持、mas_updateConstraints:
在 GitHub 上编辑此页
上次更新: 2026/3/30 06:37
贡献者: samzhjiang