键盘后更改UI控件高度

时间:2016-03-27 14:26:56

标签: ios objective-c autolayout uikeyboard

当键盘打开时,我已经使用此代码缩小并移动控件:

-(void)keyboardWillShow:(NSNotification *)notification {
    NSValue *value = [notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSTimeInterval interval = 0;
    [value getValue:&interval];

    CGSize keyboardSize = [[notification.userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

    [UIView animateWithDuration:interval animations:^{
        self.composeBarBottomConstraint.constant = (-1) * keyboardSize.height;
        [self.view layoutIfNeeded];
    }];
}

这适用于普通键盘,但是当我点击表情符号键盘按钮时,UI控制位置不应该是(向上偏移)和跳跃而不是动画 - 让我想到我从中检索的值表情符号键盘出现[notification userInfo]错误。

任何想法在这里发生了什么?

1 个答案:

答案 0 :(得分:0)

UIKeyboardFrameBeginUserInfoKey替换为UIKeyboardFrameEndUserInfoKey。此键包含系统将执行的所有动画后的键盘大小信息。您可以在this answer

中阅读更多内容