当键盘打开时,我已经使用此代码缩小并移动控件:
-(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]
错误。
任何想法在这里发生了什么?
答案 0 :(得分:0)
将UIKeyboardFrameBeginUserInfoKey
替换为UIKeyboardFrameEndUserInfoKey
。此键包含系统将执行的所有动画后的键盘大小信息。您可以在this answer