适用于 iOS、macOS 和 tvOS 的 AutoLayout 扩展。
UIView
的 keyboardLayoutGuide
,完全可动画UIView
的 keyboardSafeAreaLayoutGuide
,完全可动画UIScrollView
的扩展,可根据键盘的出现情况调整 contentInset
创建一个列出 framework 的 Cartfile
,然后运行 carthage update
。按照说明将 $(SRCROOT)/Carthage/Build/iOS/LayoutAid.framework
添加到 iOS 项目。
github "davidask/LayoutAid"
此项目支持 Swift Package Manager。
要使用此库中提供的扩展,您必须 import LayoutAid
。
NSLayoutConstraint.activate {
containerView.anchor(
Edges(equalTo: view.layoutMarginsGuide)
)
iconView.anchor {
Width(equalTo: 50)
AspectRatio(equalTo: 1)
Center(equalTo: containerView)
}
label.anchor {
Top(equalToSystemSpacingBelow: iconView)
CenterX(equalTo: containerView.readableContentGuide)
Width(lessThanOrEqualTo: containerView.readableContentGuide, multiplier: 0.5)
}
}
约束最好批量激活,但是,即使使用布局锚点,创建复杂的布局也可能变得冗长。 此库在 NSLayoutConstraint
上提供了两种使用函数构建器的静态方法
build
,用于使用函数构建器创建约束activate
,用于使用函数构建器创建和激活约束要约束视图或布局引导,请使用 view.anchor
或 layoutGuide.anchor
。 约束块可以在 NSLayoutConstraint.build
或 NSLayoutConstraint.activate
中使用。
该库使其语义与 Apple 的布局锚点 API 对齐,这意味着您会找到每个锚点类型的约束构建器,包括便捷构建器。
Leading(前导)
Trailing(后缘)
Left(左)
Right(右)
Top(上)
Bottom(下)
CenterX(中心 X)
CenterY(中心 Y)
Center(中心)
Edges(边)
DirectionalEdges(定向边)
Size(尺寸)
AspectRatio(宽高比)
在 iOS 中管理键盘可能很棘手。 此库提供对 keyboardLayoutGuide
和 keyboardSafeAreaLayoutGuide
的惰性访问器。 在观察键盘状态的 Keyboard
类型的支持下,这使您可以轻松地在考虑键盘的情况下布局视图。
NSLayoutConstraint.activate {
keyboardBackgroundView.anchor(
Edges(equalTo: view.keyboardLayoutGuide)
)
keyboardAvoidingView.anchor {
Leading(equalTo: view)
Trailing(equalTo: view)
Top(equalTo: view.safeAreaLayoutGuide)
Bottom(lessThanOrEqualTo: view.keyboardSafeAreaLayoutGuide)
}
}
此库可以使用以下方法根据键盘外观自动调整 UIScrollView
的 contentInset
UIScrollView.adjustContentInsetForKeyboard()
,立即将滚动视图插图调整为键盘UIScrollView.beginAdjustingContentInsetForKeyboard()
,开始观察键盘自动调整滚动视图插图UIScrollView.endAdjustingContentInsetForKeyboard()
,停止观察键盘自动调整滚动视图插图请随时贡献 LayoutAid,有关更多信息,请查看 LICENSE
文件。
David Ask