iOS开发中经常遇到要检测键盘的高度并做相应的偏移动画的场景,再次仅做记录,在需要的时候直接copy即可
1.添加监听:(一般情况下只需监听键盘将要弹出和将要隐藏的方法即可)
/* UIKeyboardWillChangeFrameNotification键盘的frame将要发生改变时发出的通知(位置和尺寸) UIKeyboardDidChangeFrameNotification键盘的frame发生改变时发出的通知(位置和尺寸) UIKeyboardWillShowNotification键盘将要弹出 UIKeyboardDidShowNotification键盘弹出时 UIKeyboardWillHideNotification键盘将要隐藏 UIKeyboardDidHideNotification键盘已经隐藏 */ //监听键盘将要弹出 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //增加监听,当键退出时收出消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
2.添加监听方法:
3.在delloc方法中移除监听
//键盘将要弹出 -(void)keyboardWillShow:(NSNotification *)sender { //获取键盘的高度 NSDictionary *userInfo = [sender userInfo]; NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; CGRect keyboardRect = [aValue CGRectValue]; CGFloat height = keyboardRect.size.height; } //键盘将要隐藏 -(void)keyboardWillHide:(NSNotification *)sender { }
//移除监听 -(void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:UIKeyboardWillShowNotification]; [[NSNotificationCenter defaultCenter] removeObserver:UIKeyboardWillHideNotification]; }