KeyboardAvoidingView
键盘规避的简单方案。视图可以管理自身底部约束常量或框架高度以规避键盘。
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
。
动图动画
安装
Carthage
如果您在Storyboard中设置了KeyboardAvoidingView
类,请确保模块字段也为KeyboardAvoidingView
请查阅官方指南
Cartfile
github "APUtils/KeyboardAvoidingView" ~> 5.2
然后,将KeyboardAvoidingView
和ViewState
框架添加到您的项目中。如果您之前有APExtensionsViewState
依赖项,请将其移除。
CocoaPods
您可以通过CocoaPods获取到KeyboardAvoidingView
。要安装它,只需将以下行添加到您的Podfile中
pod "KeyboardAvoidingView", '~> 5.2'
Swift Package Manager
Swift Package Manager是一个用于自动分发Swift代码的工具,并且集成到swift编译器中。
一旦您设置了Swift包,添加KeyboardAvoidingView
作为依赖项就像在Package.swift
中的依赖项值添加一样简单。
dependencies: [
.package(url: "https://github.com/APUtils/KeyboardAvoidingView.git", .upToNextMajor(from: "5.2.0"))
]
用法
只需将KeyboardAvoidingView
类设置为Storyboard中任何视图(通常是基本容器)以调整其底部约束或框架高度以避开键盘,确保模块字段也为KeyboardAvoidingView
。
也可以从代码中创建它
let keyboardAvoidingView = KeyboardAvoidingView(frame: containerView.bounds)
keyboardAvoidingView.translatesAutoresizingMaskIntoConstraints = true
keyboardAvoidingView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
containerView.addSubview(keyboardAvoidingView)
在大多数情况下,屏幕上只需要一个KeyboardAvoidingView
。请确保不要创建嵌套的KeyboardAvoidingView
。
请参阅示例项目以获取更多详情。
与IQKeyboardManager一起使用
KeyboardAvoidingView
很可能与 IQKeyboardManager
发生冲突,因此在使用 KeyboardAvoidingView
的界面上,您需要禁用 IQKeyboardManager
。请参阅 IQKeyboardManager
的文档。它可能看起来像这样
IQKeyboardManager.shared.disabledDistanceHandlingClasses.append(contentsOf: [MyViewController.self])
贡献
任何贡献都受到欢迎!您可以通过GitHub上的pull请求和问题进行贡献。
作者
Anton Plebanovich,[email protected]
许可
KeyboardAvoidingView 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。