UnderKeyboard 13.0.2

UnderKeyboard 13.0.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2019年4月
SPM支持SPM

Evgenii Neumerzhitckii维护。



  • 作者:
  • Evgenii Neumerzhitckii

一个iOS / Swift库,用于从键盘下方移动内容

Carthage compatible CocoaPods Version License Platform

此库可以在键盘出现时移动视图,并在键盘隐藏时将它们移回到原位。它包括用于更改底部自动布局约束长度的辅助类。

Moving content from under the keyboard in iOS / Swift

设置

您可以将UnderKeyboard添加到项目的三种方式。

添加源(iOS 7+)

简单地将UnderKeyboardDistrib.swift添加到您的项目中。

使用Carthage设置(iOS 8+)

或者,将 github "evgenyneu/UnderKeyboard" ~> 13.0 添加到您的 Cartfile 中,并运行 carthage update

使用 CocoaPods 配置(iOS 8+)

如果您使用 CocoaPods,请将此文本添加到您的 Podfile 中,并运行 pod install

use_frameworks!
target 'Your target name'
pod 'UnderKeyboard', '~> 13.0'

旧版 Swift 版本

如果您使用较旧版本的 Swift,请设置库的 上一个版本

使用方法

如果您使用 Carthage 或 CocoaPods 配置方法,请在您的源代码中添加 import UnderKeyboard

将内容向上移动

当屏幕上出现键盘时,可能会导致您的视图被遮挡。防止这种情况的一种方法是创建一个底部 Auto Layout 约束,并增加其长度。可以使用 UnderKeyboardLayoutConstraint 辅助类来实现这一点。注意,底部布局约束关系可以是简单的 equal 关系,也可以是 demo 应用程序的登录屏幕中使用的 greater than 关系。

@IBOutlet weak var bottomLayoutConstraint: NSLayoutConstraint!
let underKeyboardLayoutConstraint = UnderKeyboardLayoutConstraint()

override func viewDidLoad() {
  super.viewDidLoad()

  underKeyboardLayoutConstraint.setup(bottomLayoutConstraint, view: view)
}

Increase height of bottom layout constraint when keyboard appears in iOS

注意:bottomLayoutConstraint 的底部边缘应连接到父视图,而不是布局指南或安全区域。

直接使用键盘观察者

此库包含名为 UnderKeyboardObserver 的类,您可以使用它来编写自己的自定义逻辑。您可以为该观察者提供在键盘显示和隐藏时将被调用的函数。您的函数将收到键盘的高度。如果键盘正在隐藏,则高度参数为零。

let keyboardObserver = UnderKeyboardObserver()

override func viewDidLoad() {
  super.viewDidLoad()
  keyboardObserver.start()

  // Called before the keyboard is animated
  keyboardObserver.willAnimateKeyboard = { height in
    myConstraint.constant = height
  }

  // Called inside the UIView.animateWithDuration animations block
  keyboardObserver.animateKeyboard = { height in
    myView.layoutIfNeeded()
  }
}

获取键盘高度

使用UnderKeyboardObserver对象的currentKeyboardHeight属性来获取当前键盘高度。必须首先调用start方法以开始监听键盘通知。currentKeyboardHeight返回的值如果键盘状态未知可以被设置为nil。这种情况可能发生在调用start方法后没有发生键盘通知,因此我们不知道键盘是否可见或隐藏。

let keyboardObserver = UnderKeyboardObserver()

override func viewDidLoad() {
  super.viewDidLoad()
  keyboardObserver.start()
}

func myFunction() {
  print("Keyboard height: \(keyboardObserver.currentKeyboardHeight)")
}

版本11中的API更改

在版本11中,移除了UnderKeyboardLayoutConstraint类中用于setup方法的bottomLayoutGuide属性。为了正确计算底边约束高度,现在应该将其底边与superview连接,而不是与布局指南或安全区域。superview应该是与应用程序窗口大小匹配的视图。

参考资料

管理键盘

许可

UnderKeyboard是在MIT许可证下发布的。

🐘

Creature under the keyboard