UIKeyboard изменит кадр с интерактивным дисплеем клавиатуры, не вызывается постоянно

Я пытаюсь использовать UITableView.keyboardDismissMode = UIScrollViewKeyboardDismissMode.Interactive, чтобы иметь возможность перетаскивать мою клавиатуру вверх и вниз. Однако я не могу найти способ отследить фрейм клавиатуры, чтобы обновить фрейм tableView и представление сообщений. Я просто пытаюсь повторить стандартное поведение iMessage. Учитывая имя, я бы подумал, что UIKeyboardWillChangeFrameNotification был бы идеальным для отслеживания изменений кадра клавиатуры, но он только уведомляет, когда жест заканчивается и клавиатура анимируется вверх или вниз.

Ответы

Ответ 1

Я не уверен, что это сработает, но вы можете попытаться отслеживать ход перетаскивания с помощью свойства panGesture в UIScrollView в вашем tableView. Это не было бы прямым отслеживанием рамки клавиатуры, но если вы знаете высоту клавиатуры и ход/смещение панорамы, вы сможете решить эту проблему.

Ответ 2

Лучшим подходом к интерактивному увольнению является использование системных уведомлений "UIKeyboardDidShowNotification" и "UIKeyboardWillHideNotification". Когда вызывается селектор, вы обновляете вставку внизу таблицы. НЕ ограничения. Обновление вставки даст вам прекрасную гладкую клавиатуру.