您需要做两件事 - 1)确保表格视图适合键盘未覆盖的屏幕可见部分,以及 2)将表格滚动到最后一行。
要调整视图大小,我会注册以检测出现的键盘:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector (keyBoardWillShow:)
name: UIKeyboardWillShowNotification object: nil];
keyBoardWillShow:
当键盘出现并且您可以调整表格视图的大小时,将调用该方法:
- (void)keyBoardWillShow:(NSNotification *)aNotification
{
NSValue *value = [[aNotification userInfo] objectForKey: UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [value CGRectValue];
CGFrame tableFrame = self.tableView.frame;
tableFrame.height -= keyboardRect.size.height
self.tableView.frame = tableFrame;
}
最后,滚动到最后一个单元格(keyBoardWillShow:
如果你愿意,你可以这样做):
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRowIndex inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];