Почему часть моего UIView покрывает клавиатуру?
Часть моего UIView покрывает клавиатуру iPad.
![enter image description here]()
Вид, который вы видите, - это просто UIView, который я добавил в качестве подзаголовка к моему основному виду. Когда отображается клавиатура, я перемещаю вид вверх.
Кто-нибудь когда-либо видел это раньше?
ИЗМЕНИТЬ
Когда отображается клавиатура, я перемещаю вид вверх:
[UIView animateWithDuration:SHOW_KEYBOARD_ANIMATION_DURATION animations:^{
CGRect frame = self.currentViewController.view.frame;
frame.origin.y -= SHOW_KEYBOARD_OFFSET;
self.currentViewController.view.frame = frame;
}];
ИЗМЕНИТЬ
Я использую следующий код, чтобы добавить представление:
[UIView transitionFromView:fromView toView:toView duration:0.3f options:UIViewAnimationOptionTransitionCrossDissolve completion:nil];
Ответы
Ответ 1
Вы вызываете код, чтобы переместить представление в сторону до или после отображения клавиатуры? Другими словами, регистрируетесь ли вы для UIKeyboardWillShowNotification или UIKeyboardDidShowNotification?
Я не уверен, где вы получаете размер клавиатуры? Взгляните на образец образца Apple еще раз, см. http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html, прокрутите вниз до раздела, касающегося перемещения содержимого, расположенного под клавиатурой.
Ответ 2
Откуда вы получаете SHOW_KEYBOARD_OFFSET? Готов поспорить, что проблема.
Вы должны улавливать уведомления, точно так же, как сказала Кейт, и используя userInfo из них, чтобы определить, что делать с перемещением вашего вида. Любые жестко закодированные значения сломают второй Apple, изменив размер клавиатуры на вас. Короче говоря, не предполагайте, что инфраструктура может так легко сказать вам.