增加框架的大小 - Keyboardwillshow - Swift

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了增加框架的大小 - Keyboardwillshow - Swift相关的知识,希望对你有一定的参考价值。

我的代码似乎在第一次调用键盘时工作得很好。第二次调用键盘时,帧大小不会增加。

这是我的代码:

@objc func keyboardWillShow(sender: NSNotification) {

    let _: [NSObject : AnyObject] = sender.userInfo! as [NSObject : AnyObject]

    let keyboardSize: CGSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey]! as AnyObject).cgRectValue.size
    let offset: CGSize = (sender.userInfo?[UIKeyboardFrameEndUserInfoKey]! as AnyObject).cgRectValue.size

    if keyboardSize.height == offset.height {
        UIView.animate(withDuration: 0.25, delay: 0.0, options: [.allowUserInteraction], animations: {
            let frame = self.view.frame
            self.view.frame = CGRect(x: 0, y: self.fullView, width: frame.width, height: frame.height)
        })

        noteDetails.frame.size.height = noteDetails.frame.size.height + keyboardSize.height
    } else {
        UIView.animate(withDuration: 0.25, delay: 0.0, options: [.allowUserInteraction], animations: {
            let frame = self.view.frame
            self.view.frame = CGRect(x: 0, y: self.fullView, width: frame.width, height: frame.height)
        })

        noteDetails.frame.size.height = noteDetails.frame.size.height + keyboardSize.height - offset.height
    }
}

@objc func keyboardWillHide(sender: NSNotification) {
    let _: [NSObject : AnyObject] = sender.userInfo! as [NSObject : AnyObject]

    let keyboardSize: CGSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey]! as AnyObject).cgRectValue.size

    noteDetails.frame.size.height = noteDetails.frame.size.height + keyboardSize.height

}

我添加了偏移量来检查自定义键盘高度并根据它增加高度。我觉得这导致代码崩溃。具体来说,第二次调用键盘时,keyboardSize的高度应该是自定义键盘的高度。不知道如何修复我的代码,以便表格的框架高度增加键盘的高度,无论是自定义键盘还是常规键盘。

答案

使用UIKeyboardFrameEndUserInfoKey而不是UIKeyboardFrameBeginUserInfoKey

以上是关于增加框架的大小 - Keyboardwillshow - Swift的主要内容,如果未能解决你的问题,请参考以下文章

无法增加 tkinter 框架 canvas.create_window 的大小,隐藏 CSV 列

绘制与 Panel 相对大小的图像

何时在 iOS 7 中使用 AutoLayout 更新约束

如何根据 iphone 中的文本大小动态增加按钮宽度?

在 iPhone 中使用 UIPanGesture 旋转 UIView 的框架增加减少

php之框架增加日志记录功能类