Clavier 是 iOS 的键盘布局指南。它使用相交的 frame 来计算布局指南。
要运行示例项目,请克隆 repo,然后首先从 Example 目录运行 pod install
。
Clavier 可通过 CocoaPods 获取。 要安装它,只需将以下行添加到您的 Podfile 中
pod 'Clavier', '~> 2.0.3'
在 Package.swift 中添加为您的目标依赖项
dependencies: [
.package(url: "https://github.com/hainayanda/Clavier.git", .upToNextMajor(from: "2.0.3"))
]
在您的目标中使用它,就像使用 Clavier
一样
.target(
name: "MyModule",
dependencies: ["Clavier"]
)
Nayanda Haberty, hainayanda@outlook.com
Clavier 在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。
Clavier 是为约束到键盘而创建的键盘布局指南。 它会在键盘更改时自动更改。 它计算键盘和 UIView
的相交 frame。 如下面的图片所示
如果键盘未与 view 相交,它将始终使用 UIView
的最底部(高度为零)作为常规布局,或者使用安全区域的最底部作为安全布局
如果键盘已隐藏,它将始终使用 UIView 的最底部(高度为零)作为常规布局,或者使用安全区域的最底部作为安全布局
要使用 Clavier,只需从任何 UIView
使用 clavierLayoutGuide
,或者如果您喜欢与安全区域相交的布局,则使用 safeClavierLayoutGuide
。 它是扩展了 UILayoutGuide
类的 ClavierLayoutGuide
类的实例,因此它具有其所有锚点,例如 topAnchor
、leadingAnchor
等。
myView.bottomAnchor.constraints(equalTo: mySuperview.clavierLayoutGuide.topAnchor)
或者使用安全区域
myView.bottomAnchor.constraints(equalTo: mySuperview.safeClavierLayoutGuide.topAnchor)
myView 将根据键盘布局指南 frame 的更改自动移动。
由于它是 UILayoutGuide 的子类,因此它具有 layoutFrame,layoutFrame 是与键盘 frame 相交的 frame(如果您需要它)
let frameIntersectWithKeyboard: CGRect = view.clavierLayoutGuide.layoutFrame
或者使用安全区域
let frameIntersectWithKeyboard: CGRect = view.safeClavierLayoutGuide.layoutFrame
在 iOS 15 上,Clavier 将默认使用 UIKit 的 keyboardLayoutGuide
。 在 safeClavierLayoutGuide
上,它将使用利用 keyboardLayoutGuide
和 safeAreaLayoutGuide
的自定义类
如果您想通过直接使用 view 或使用全局配置进行设置,则可以显式禁用 iOS 15 keyboardLayoutGuide
。
myView.usingAppleKeyboardLayoutGuideIfAvailable = false
// or to apply as default with all view
ClavierGlobalConfig.usingAppleKeyboardLayoutGuideIfAvailable = false
您知道怎么做,只需克隆并提出 pull request 即可