1:通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
2:方法:
//键盘显示,调整tableview的高度
- (void)keyboardWasShown:(NSNotification*)aNotification
{
//获取通知传递过来的信息
NSDictionary* info = [aNotification userInfo];
//获取键盘的size
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
//得到UIEdgeInsets
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
//设置tableview的UIEdgeInsets
self.tableView.contentInset = contentInsets;
self.tableView.scrollIndicatorInsets = contentInsets;
if (isYesName) {
textFieldView.frame = CGRectMake(0, SCREEN_HEIGHT-kbSize.height-60-64, SCREEN_WIDTH, 60);
}
}
//键盘收起,恢复tableview的UIEdgeInsets
- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0,0.0 , 0.0);
self.tableView.contentInset = contentInsets;
self.tableView.scrollIndicatorInsets = contentInsets;
if (isYesName) {
textFieldView.frame = CGRectMake(0, SCREEN_HEIGHT-64, SCREEN_WIDTH, 60);
}
}