1.在ViewDidLoad中添加通知:
//键盘将要显示时候的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardUP:) name:UIKeyboardWillShowNotification object:nil];
//键盘将要结束时候的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDOWN:) name:UIKeyboardWillHideNotification object:nil];
2.实现通知的响应方法
- (void)keyboardUP:(NSNotification *)sender{
NSDictionary *userInfoDic = sender.userInfo;
//获得键盘的尺寸
CGRect keyboardRect = [userInfoDic [UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGFloat height = keyboardRect.size.height;
[UIView animateWithDuration:0.5 animations:^{
self.view.center = CGPointMake(self.view.center.x, self.view.center.y - height);
}];
}
- (void)keyboardDOWN:(NSNotification *)sender{
[UIView animateWithDuration:0.5 animations:^{
self.view.center = CGPointMake(self.view.center.x, SCREEN_H / 1.5);
}];
}
//最后释放通知
- (void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
引用(PS:文中用到的宏定义)
#define SCREEN_W [UIScreen mainScreen].bounds.size.width
#define SCREEN_H [UIScreen mainScreen].bounds.size.height
内容