Почему часть моего 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, изменив размер клавиатуры на вас. Короче говоря, не предполагайте, что инфраструктура может так легко сказать вам.