FHConstraints 是 UIView 类的一个扩展,提供有用的约束方法。这些方法简化了内置的约束方法。
将以下内容添加到您的 Package.swift 的依赖项中
.package(url: "https://github.com/FelixHerrmann/FHConstraints.git", from: "x.x.x")
下载 Sources 文件夹中的文件并将它们拖入您的项目中。
如果您正在使用 Swift Package Manager,您必须使用 import FHConstraints 将 FHConstraints 导入到您的文件中。您也可以使用 @_exported import FHConstraints 全局导入它。(例如,在 AppDelegate.swift 中)
代替
subview.translatesAutoresizingMaskIntoConstraints = false
subview.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
subview.trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor, constant: -10).isActive = true
subview.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 5).isActive = true
subview.heightAnchor.constraint(greaterThanOrEqualTo: view.heightAnchor, multiplier: 1.5, constant: 20).isActive = true
您将使用
subview.constraint(.leading(to: view.leadingAnchor))
subview.constraint(.trailing(to: view.trailingAnchor, .lessThanOrEqual(to: -10)))
subview.constraint(.centerY(to: view.centerYAnchor, .equal(to: 5)))
subview.constraint(.height(to: view.heightAnchor, .greaterThanOrEqual(to: FHLayoutAnchor.DimensionConstant(multiplier: 1.5, constant: 20))))
所有这些方法都将返回创建的约束。
组合约束方法
subview.constraint([
.leading(to: view.leadingAnchor),
.trailing(to: view.trailingAnchor, .lessThanOrEqual(to: -10)),
.centerY(to: view.centerYAnchor, .equal(to: 5)),
.height(to: view.heightAnchor, .greaterThanOrEqual(to: FHLayoutAnchor.DimensionConstant(multiplier: 1.5, constant: 20)))
])
快捷方法
subview.constraint(.inside(of: view, insets: .equal(to: EdgeInsets(top: 0, left: 0, bottom: 0, right: 0))))
subview.constraint(.toCenter(of: view, offset: .equal(to: FHConvenienceAnchors.Offset(horizontal: 0, vertical: 0))))
subview.constraint(.size(.equal(to: CGSize(width: 0, height: 0)))
约束创建(但不激活)方法
let leadingConstraint = subview.createConstraint(from: .leading(to: view.leadingAnchor))
FHConstraints 在 MIT 许可证下可用。有关更多信息,请参见 LICENSE 文件。