如果您想查看完整的示例,请运行示例项目,克隆仓库,然后首先从 Example 目录运行 pod install
所有约束都指定为输入参数。调用 UIView
的方法 - makeConstraints(for:)
,它接受一个或多个 CSMConstraintType
枚举的实例,用逗号分隔。
enum CSMConstraintType {
case top
case leading
case left
case bottom
case trailing
case right
case height
case width
case centerX
case centerY
}
所有计算都在闭包中完成。您可以使用 pin(to:)
方法(属于 CSMConstraintPinner
的实例)将其视图固定到其父视图的任何一边,或者如果您想稍后再使用约束,可以使用 pinAndReturn(to:)
。
常数是通过使用 equal(_:)
或 equalAndReturn(_:)
方法创建的。
pin
方法的输入参数(按此顺序使用)_ anchor
: NSLayoutAnchor - 锚点。const
: CGFloat - 某个轴上的常量偏移量。mult
: CGFLoat - 比例因子,仅用于高度和宽度锚点。options
: CSMConstraintOptions - 可能的选项:.equal
、.lessOrEqual
、.moreOrEqual
。默认情况下,您只需要指定锚点,所有约束都会激活,并且底层视图的属性 translatesAutoresizingMaskIntoConstraints
被设置为 false!
equal
方法的输入参数仅为常量(CGFloat)。您还可以通过使用 CSMConstraintPinner
上的 returnAll()
方法在闭包中返回所有锚点。
您可以使用 deactivate(_ :)
(带有约束的索引)或使用 deactivateAll()
来禁用您的约束。
someView.makeConstraints(for: .top, .left, .width, .height) { (make) in
self.someViewTopAnchor = make.pinAndReturn(to: self.view.topAnchor, const: 30)
make.pin(to: self.view.leftAnchor, const: 10)
make.pin(to: self.view.widthAnchor, mult: 0.3)
make.equal(200)
}
Safe Area Layout Guide
安排视图viewController.fillSafeArea(with: someView)
someView.fillSuperview()
someView.anchorCenterSuperview()
或者
someView.anchorCenterXToSuperview(constant: 10)
someView.anchorCenterYToSuperview(constant: 5)
CocoaPods
将行 pod "Pinner"
添加到您的 Podfile
中
手动
克隆仓库并将文件 Pinner.swift
拖到您的 Xcode 项目中。
DenisLitvin,[email protected]
Pinner 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。