swift - Scrollview 滚动不适用于隐藏键盘?

标签 swift uiscrollview swift4 uikeyboard

我有一个带有一些文本字段的 ScrollView 。滚动一开始很好,但隐藏键盘后,尽管 contentView 大于scrollView,滚动不起作用。我使用以下函数来显示和隐藏键盘:

func keyboardWasShown(notification: NSNotification){
        //Need to calculate keyboard exact size due to Apple suggestions
        self.scrollView.isScrollEnabled = true
        var info = notification.userInfo!
        let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
        let contentInsets : UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize!.height, 0.0)

        self.scrollView.contentInset = contentInsets
        self.scrollView.scrollIndicatorInsets = contentInsets

        var aRect : CGRect = self.view.frame
        aRect.size.height -= keyboardSize!.height
        if let activeField = self.activeField {
            if (!aRect.contains(activeField.frame.origin)){
                self.scrollView.scrollRectToVisible(activeField.frame, animated: true)
            }
        }
    }

func keyboardWillBeHidden(notification: NSNotification){
        //Once keyboard disappears, restore original positions
        var info = notification.userInfo!
        let keyboardSize = (info[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
        let contentInsets : UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, -keyboardSize!.height, 0.0)
        self.scrollView.contentInset = contentInsets
        self.scrollView.scrollIndicatorInsets = contentInsets
        self.view.endEditing(true)
        self.scrollView.isScrollEnabled = true
    }

最佳答案

如果您想关闭键盘,请将 UIKeyboardFrameBeginUserInfoKey 更改为 UIKeyboardFrameEndUserInfoKey

关于swift - Scrollview 滚动不适用于隐藏键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49767614/

相关文章:

ios - 如何使用 Google Calendar API iOS Swift 创建事件

iphone:部分屏幕UIScrollView

iphone - 另一个 ScrollView 内的 ScrollView 内的 TableView

ios - 如何使用 UIScrollView 内的自动布局将 UIImage View 缩放为正方形

swift - Swift4 转换后 "' init ' is deprecated"警告

ios - UIImage 到 NSData fatal error : unexpectedly found nil while unwrapping an Optional value

Swift:延迟增加标签

ios - swift 中文本字段的前景色

ios - 更改 View 高度时,不会保留自动布局约束

ios - Xcode 9 中的 Swift 4 - 读取核心数据中的数据失败