CollectionViewController не настраивается для отображения клавиатуры с InputAccessoryView - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть страница чата в моем приложении, и я использую InputAccessoryView для текстового поля.Когда клавиатура открывается и закрывается, текстовое поле следует за клавиатурой и выглядит великолепно.Проблема заключается в том, что при открытии клавиатуры представление коллекции не настраивается, чтобы разрешить прокрутку до конца содержимого.

Есть идеи, что может быть причиной этой проблемы?

func handleKeyboardWillShow(_ notification: Notification) {
    let keyboardFrame = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as AnyObject).cgRectValue
    let keyboardDuration = (notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as AnyObject).doubleValue

    containerViewBottomAnchor?.constant = -keyboardFrame!.height

    UIView.animate(withDuration: keyboardDuration!, animations: {
        self.view.layoutIfNeeded()
    }) { (Bool) in
        let indexPath = IndexPath(item: self.messages.count - 1, section: 0)
        self.collectionView.scrollToItem(at: indexPath, at: .bottom, animated: true)
    }

}

func handleKeyboardWillHide(_ notification: Notification) {
    let keyboardDuration = (notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as AnyObject).doubleValue

    containerViewBottomAnchor?.constant = 0
    UIView.animate(withDuration: keyboardDuration!, animations: {
        self.view.layoutIfNeeded()
    })
}

1 Ответ

0 голосов
/ 28 февраля 2019

Совместное использование представлений коллекций и клавиатур - сложная задача для многих.

Самое простое, что можно сделать - это использовать TPKeyboardAvoiding от Майкл Тайсон или посмотреть накод, чтобы увидеть, что он делает.

...