有关键盘的通知:
UIKeyboardWillShowNotification
当键盘即将要显示的时候将会发出这个通知。这个通知包含了用户信息库,库里面包括了键盘的各种 信息,键盘将以动画的形式显示在屏幕上。
UIKeyboardDidShowNotification
当键盘显示在屏幕上时将发出这个通知。
UIKeyboardWillHideNotification
当键盘将要从屏幕上移除时将会发出此通知。通知里包含了用户信息库,库里包括了各种关于键盘信 息的详细信息,当键盘隐藏时的动画,动画的持续时间,等等。
UIKeyboardDidHideNotification当键盘完全隐藏后将发出此通知。
UIKeyboardWillChangeFrameNotification:键盘发生变化时(出现或者消失)
#用法举例:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
对应的监听方法:
-(void)keyboardWillChangeFrame:(NSNotification *)notic
{
KDLOG(@"notic.userInfo)===%@",notic.userInfo);
}
#输出结果为
**notic.userInfo)==={**
** UIKeyboardAnimationCurveUserInfoKey = 7;**
** UIKeyboardAnimationDurationUserInfoKey = "0.25";**
** UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 253}}";**
** UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 694.5}";**
** UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 441.5}";**
** UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 568}, {320, 253}}";**
** UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 315}, {320, 253}}";**
** UIKeyboardIsLocalUserInfoKey = 1;**
**}**
#参数解释:
UIKeyboardAnimationCurveUserInfoKey:
这个关键字的值指明了动画的类型,用来显示和隐藏键盘。这个关键字包含了一个 NSNumber 类型的值, 此类型包含了一个NSUInteger 类型无符号整数
UIKeyboardAnimationDurationUserInfoKey:
这个键值指明了键盘显示或隐藏的动画所用的时间。这个键包含一个 NSNumber 类型的值,此类包含一个 double 类型的双字节值。
UIKeyboardFrameBeginUserInfoKey:
这个键值指明了键盘在动画之前的框架。假如键盘将要显示时,在显示之前将这个框架传递给这个动 画。假如键盘已经显示了并即将要隐藏时,这个框架将会传递给这个隐藏动画,在键盘消失之前。这个键包含 了一个 CGRect 类型的值。
UIKeyboardFrameEndUserInfoKey:
这个键值指明了动画完成后的键盘框架。假如键盘即将要显示时,这个框架将会在键盘完全显示后传递给键盘。。假如键盘已经完全显示,而且将要隐藏时,在完全隐藏后这个框架将会传递给键盘。这个键值包 含了一个 CGRect 类型的值。
键盘出现或者消失的时候拖带效果(放在监听键盘通知UIKeyboardWillChangeFrameNotification的监听方法中)。
// 约束动画
[UIView animateWithDuration:duration animations:^{
[self.view layoutIfNeeded];
}];
参考链接:监听和响应键盘通知