ios - 快速处理键盘重叠

标签 ios swift xcode keyboard

在没有 IQKeyboardManagerSwift 或 IHKeyboardAvoiding 等框架的情况下,修复键盘重叠的最佳方法是什么?

最佳答案

设置 ScrollView 底部布局约束,

这使得所有文本字段都可以通过滚动使用,您无需考虑其他设备和键盘高度差异。

@IBOutlet weak var mainScrollViewBottomConstraint: NSLayoutConstraint!

 open override func viewDidLoad() {
        super.viewDidLoad()
        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)

         notificationCenter.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
    }

    func keyboardWillShow(_ notification: Notification) {
        let userInfo = (notification as NSNotification).userInfo!
        let keyboardSize = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
        mainScrollViewBottomConstraint.constant = keyboardSize.height
    }

    func keyboardWillHide(_ notification: Notification) {
        mainScrollViewBottomConstraint.constant = 0
    }

编辑:我制作了一个关于我的解决方案的视频。 https://youtu.be/gS4AKcJAg3Y

关于ios - 快速处理键盘重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44097684/

相关文章:

c++ - Apple Mach-O 链接器错误 : Undefined symbols for architecture armv7 Google Protobuf

ios - 为什么在 void 函数中会出现意外的非 void 返回值?

Swift:pickerView 的结果具有与协议(protocol) uipickerviewdelegate 预期的不同的可选性

Swift ImagePicker 开始视频捕获

ios - 如何停止 iOS 模拟器隐藏 xcode

xcode - GLEW 在 XCode 中崩溃

ios - 为什么不断开工作?

ios - 在界面生成器中创建的按钮...这条虚线是什么以及如何修复它?

ios - Swift - 无法在 Safari 中打开本地文件

iphone - 只显示一次设置窗口