Я использую UIKeyboardWillShowNotification для прокрутки вида вверх и вниз при вызове клавиатуры. Это работает отлично по большей части. Однако на клавиатуре есть кнопка, которая может создавать UIAlert. Без UIAlert нет проблем, но если UIAlert называется чем-то странным, случается с scrollview, он, похоже, перестает работать, уменьшая его размер.UIKeyboardWillShowNotification и UIAlert
это код, я использую:
func adjustInsetForKeyboardShow(show: Bool, notification: NSNotification) {
guard let value = notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue else { return }
let keyboardFrame = value.CGRectValue()
let adjustmentHeight = (CGRectGetHeight(keyboardFrame) + 70) * (show ? 1 : -1)
scrollView.contentInset.bottom += adjustmentHeight
//scrollView.scrollIndicatorInsets.bottom += adjustmentHeight
}
func keyboardWillShow(notification: NSNotification) {
if keyboardVisible == false {
adjustInsetForKeyboardShow(true, notification: notification)
keyboardVisible = true
}
}
func keyboardWillHide(notification: NSNotification) {
adjustInsetForKeyboardShow(false, notification: notification)
keyboardVisible = false
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
клавиатура, то есть кнопка, которая имеет следующий код:
func displayAlert(title:String, message:String, view:UIViewController){
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: { (action) -> Void in
}))
view.presentViewController(alert, animated: true, completion: nil)
}
Результат, что предупреждение дается, то при Я нажимаю кнопку ОК, прокрутка прокрутки.
Может ли кто-нибудь помочь? Дайте мне знать, если вам нужно больше кода
Попробуйте вызвать функцию 'displayAlert()' после того, как клавиатура была полностью уволена. – ZGski