UIKeyboard изменит кадр с интерактивным дисплеем клавиатуры, не вызывается постоянно
Я пытаюсь использовать UITableView.keyboardDismissMode = UIScrollViewKeyboardDismissMode.Interactive
, чтобы иметь возможность перетаскивать мою клавиатуру вверх и вниз. Однако я не могу найти способ отследить фрейм клавиатуры, чтобы обновить фрейм tableView и представление сообщений. Я просто пытаюсь повторить стандартное поведение iMessage. Учитывая имя, я бы подумал, что UIKeyboardWillChangeFrameNotification
был бы идеальным для отслеживания изменений кадра клавиатуры, но он только уведомляет, когда жест заканчивается и клавиатура анимируется вверх или вниз.
Ответы
Ответ 1
Я не уверен, что это сработает, но вы можете попытаться отслеживать ход перетаскивания с помощью свойства panGesture
в UIScrollView
в вашем tableView. Это не было бы прямым отслеживанием рамки клавиатуры, но если вы знаете высоту клавиатуры и ход/смещение панорамы, вы сможете решить эту проблему.
Ответ 2
Лучшим подходом к интерактивному увольнению является использование системных уведомлений "UIKeyboardDidShowNotification" и "UIKeyboardWillHideNotification". Когда вызывается селектор, вы обновляете вставку внизу таблицы. НЕ ограничения. Обновление вставки даст вам прекрасную гладкую клавиатуру.