AutoLayoutSwift
该库旨在帮助开发者通过几行代码应用复杂的 AutoLayout 结构。该库在 MIT 许可下可用,并在 Cocoapods 依赖管理器中提供。
安装
该库在 Cocoapods 上发布。要安装,只需将以下行添加到您的 podfile
pod 'AutoLayoutSwift', '~> 3.2'
然后在 终端 中运行以下命令
pod install
用法
主要约束
有关 AutoLayout 概念的官方文档可以在 Apple官方文档页面 找到。然而,以下带有截图的描述可能有助于更好地理解概念。在下到底部部分之前,请注意以下内容
- 所有函数中的参数都是可选的,这意味着您不需要为所有锚点指定值。只有指定的锚点才会应用。
isRelative
参数决定锚点是否应该受对应锚点的约束。例如,如果您想将viewA
的leading锚点约束在viewB
的trailing锚点上,您可以将该参数传递为true
。- 从版本3.1开始,您可以设置对于运行iOS 11及以上版本的设备的尺寸安全区域约束。
- 这些函数返回
UIView
对象,因此可以对目标视图应用一系列约束。以下是一个示例
viewA
.fix(leading: (0, viewB) isRelative: true)
.fix(top: (0, superview), bottom: (0, superview), toSafeArea: true, isRelative: false)
.fix(height: 20)
leading与trailing
leading和trailing锚点也分别称为left和right锚点。要从viewA
向viewB
添加约束,您可以使用以下函数。
viewA.fix(leading: (value, viewB), trailing: (value, viewB), isRelative: false
Top(顶部)- Bottom(底部)
要从viewA
向viewB
添加top或bottom约束,您可以使用以下函数。
viewA.fix(top: (value, viewB), bottom: (value, viewB), isRelative: false)
Width(宽度)、Height(高度)、AspectRatio(宽高比)
要轻松应用大小约束到viewB
,可以使用以下函数。
viewA.fix(width: 20, height: 30)
要应用宽高比,首先需要设置宽度或高度约束,然后使用以下函数设置相对于分配给大小约束的第一个值。
viewA
.fix(width: 20)
.scale(aspectRatio: 2.0)
辅助函数
以下两个函数有助于对一个视图中约束有更多控制。
禁用
禁用功能简单地移除/禁用视图的限制。例如,以下行将移除分配给左侧和高度锚点的任何限制
viewA.deactivate(origin: [.left], size: [.height])
常量
要获取特定限制指定的当前值,请使用以下函数来获取一个指示值和限制的字典。例如,以下代码将获取分配给大小限制的值,结果如下:[.width: value, .height: value]
viewA.constants(in: [.width, .height])