在viewdidload注册消息, 调用 registerForKeyboardNotifications 方法
- (void) registerForKeyboardNotifications
{
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWasShown:)name:UIKeyboardDidShowNotificationobject:nil];
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWasHidden:)name:UIKeyboardDidHideNotificationobject:nil];
}
在键盘弹出时获取键盘高度 加个动画改变视图位置
- (void) keyboardWasShown:(NSNotification *) notif
{
NSDictionary *info = [notifuserInfo];
NSValue *value = [infoobjectForKey:UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [valueCGRectValue].size;
[UIViewbeginAnimations:@"xxx"context:nil];
[UIViewsetAnimationDuration:0.5];
self.tableView.frame =CGRectMake(0,0,W(self.view),H(self.view) - keyboardSize.height);
[UIViewcommitAnimations];
NSLog(@"keyBoard:%f", keyboardSize.height); //216
///keyboardWasShown = YES;
}
在键隐藏时时获取键盘高度
- (void) keyboardWasHidden:(NSNotification *) notif
{
NSDictionary *info = [notifuserInfo];
NSValue *value = [infoobjectForKey:UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [valueCGRectValue].size;
NSLog(@"keyboardWasHidden keyBoard:%f", keyboardSize.height);
// keyboardWasShown = NO;
}
多用于在键盘弹出式改变视图的位置以免被键盘挡住影响用户体验