为什么我的UIView的一部分覆盖了键盘?

时间:2012-05-04 03:34:54

标签: ios ipad uiview keyboard

我的部分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];

2 个答案:

答案 0 :(得分:1)

您是否正在调用代码以在显示键盘之前或之后移动视图?换句话说,您是否正在注册UIKeyboardWillShowNotification或UIKeyboardDidShowNotification?

我不确定你的键盘尺寸在哪里?再看看Apple的示例代码,请参阅http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html,向下滚动到有关移动键盘下方内容的部分。

答案 1 :(得分:1)

你从哪里获得SHOW_KEYBOARD_OFFSET?我敢打赌这就是问题所在。

你应该像Kate所说的那样捕捉通知,并使用他们的userInfo来解决如何移动你的视图。任何硬编码值都会破坏第二个Apple更改键盘大小。简而言之,不要假设框架可以如此轻松地告诉您。