更新日志
Masonry 的所有重要变更记录在此。
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: