设置预测时ios 8键盘问题

时间:2014-11-20 04:46:43

标签: ios objective-c xcode

我正在开发一个聊天应用程序,它在视图上放置了textview和其他按钮。设置预测时,iOS8键盘出现问题。 当预测功能关闭时,它工作正常但是在我的视图中设置了textview和其他按钮的位置。

我在viewDidLoad中为KeyboardWillShow和KeyboardWillHide添加了NSNotification。

viewDummy是添加textview和其他按钮的视图

- (void)keyboardWillShow:(NSNotification *)notification {
    NSDictionary* info = [notification userInfo];
    CGRect kKeyBoardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

    [UIView animateWithDuration:0.2f animations:^{

        CGRect frame = viewDummy.frame;
        frame.origin.y -= kbSize.height;
        viewDummy.frame = frame;


        frame = bubbleTable.frame;
        frame.size.height -= kbSize.height;
        bubbleTable.frame = frame;
    }];
}


-(void) keyboardWillHide:(NSNotification *)note{

    NSDictionary* info = [note userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

    [UIView animateWithDuration:0.2f animations:^{

        CGRect frame = viewDummy.frame;
        frame.origin.y += kbSize.height;
        viewDummy.frame = frame;

        frame = bubbleTable.frame;
        frame.size.height += kbSize.height;
        bubbleTable.frame = frame;
    }];

}

enter image description here

1 个答案:

答案 0 :(得分:0)

  • 我为解决这个问题所做的是:
  • 根据差异手动调整kbSize.height。
  • 在我的情况下,差异是高度,即44。
  • 所以我做的是frame.origin.y + = kbSize.height + 44或 frame.origin.y - = kbSize.height + 44,我想这可能对你有所帮助。