Высота уведомлений на клавиатуре iPhone X отличается - PullRequest
0 голосов
/ 25 декабря 2018

Недавно у меня было такое странное явление, когда я использовал keyboardWillShow и keyboardWillShow, когда первоначальный вызов получения высоты клавиатуры от (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue возвращает значение 477 пикселей, а затем все остальное время после этогоон говорит, что значение теперь составляет 535px, что на 58px больше.Однако визуально клавиатура не изменилась по внешнему виду.Предиктивная панель включена для обеих клавиатур.

В качестве фоновой информации цель получения нужной высоты клавиатуры заключается в смещении прокрутки табличного представления, в котором каждая ячейка содержит текстовое поле, и я сравниваю положениетекстовое поле, чтобы увидеть, скрыто ли оно за клавиатурой, когда начинается редактирование.

Я что-то упускаю из-за того, как работает моя методология понимания этого?

1 Ответ

0 голосов
/ 26 декабря 2018

Может ли это помочь вам, это работает для меня нормально

 NotificationCenter.default.addObserver(self, selector: #selector(CommentsVC.keyboardWillShow), name: 
 NSNotification.Name.UIKeyboardWillShow, object: nil)
                    NotificationCenter.default.addObserver(self, selector: #selector(CommentsVC.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

@objc func keyboardWillHide(_ notification: NSNotification) {
                UIView.animate(withDuration: 0.3) {
                    self.inputContainerViewBottom.constant = 0


                    self.view.layoutIfNeeded()


                }
            }


@objc func keyboardWillShow(_ notification: NSNotification) {
                print(notification)
                let keyboardFrame = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as AnyObject).cgRectValue
                UIView.animate(withDuration: 0.3) {
                    self.inputContainerViewBottom.constant = keyboardFrame!.height

                    self.view.layoutIfNeeded()


                    let flag = self.tableComments.isCellVisible(section: 0, row: 10 - 1)

                    if flag
                    {
                        self.scrollToBottom()
                    }
                    else
                    {

                    }

                }
            }

Примечание: inputContainerViewBottom является выходом нижнего ограничения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...