Почему я получаю разрыв между видом и прокруткой при перемещении клавиатуры в быстром? - PullRequest
1 голос
/ 23 марта 2020

Я упорядочил виды, как показано ниже

enter image description here

Я получаю пробел, как показано ниже Почему?

enter image description here

, когда представление внизу, это выглядит хорошо, когда я нажимаю на текстовое поле, тогда общее представление увеличивается, и когда я изучаю таблицу, я получаю разрыв между ниже.

это мой код:

import UIKit

class ChatViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var belowtextFieldHeightConstraint: NSLayoutConstraint!

    @IBOutlet weak var catViewBottomConstraint: NSLayoutConstraint!

    override func viewDidLoad() {
        super.viewDidLoad()

        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboard(notification:)), name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboard(notification:)), name: UIResponder.keyboardWillHideNotification, object: nil)
    }

    @objc func keyboard(notification:Notification) {
        guard let keyboardReact = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else {
            return
        }

        if notification.name == UIResponder.keyboardWillShowNotification ||  notification.name == UIResponder.keyboardWillChangeFrameNotification {
            self.view.frame.origin.y = -keyboardReact.height
        } else {
            self.view.frame.origin.y = 0
        }
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
}

1 Ответ

0 голосов
/ 23 марта 2020

У текстовых полей есть свойство с именем inputAccessoryView, убедитесь, что вы нигде не устанавливаете представление, и что при вызове клавиатуры оно равно nil.

Похоже, у вас есть одна настройка.

...