Я анимирую свои ограничения, когда появляется клавиатура. Я использую этот код:
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
и
@objc func keyboardWillShow(notification: NSNotification) {
let current = view.getSelectedTextField()
// is it not visible?
if(current != nil)
{
let frame = self.view.convert(current!.frame, from: current!.superview)
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
let space = CGFloat(16.0)
let diff = ((self.view.frame.height - keyboardSize.height - space) - (frame.origin.y + frame.height))
if(diff < 0)
{
self.view.frame.origin.y = diff
}
}
}
}
, который отлично работает для обычных символьных клавиатур, но для клавиатуры со смайликами высота совершенно неправильная.
Размер клавиатуры эмодзи рассчитывается другим способом?
Спасибо.