当键盘处于活动状态时,UITableView会向上移动

时间:2015-08-08 12:58:34

标签: ios objective-c iphone uitableview

我有UITableView,UITextfields作为contentView中的子视图。

它们可以正常工作,但是当我选择底部的时候,它们会被键盘覆盖,所以我希望UITableView向上滚动。

这是我目前的代码:

-(void)keyboardWillShow:(NSNotification*)notification {
NSValue *keyboardFrameValue = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardFrame = [[self view] convertRect:[keyboardFrameValue CGRectValue] fromView:nil];

[UIView animateWithDuration:0.3 animations:^{
    [constraint setConstant:keyboardFrame.size.height];
    [self.myTableView layoutIfNeeded];
}];
}

-(void)keyboardWillHide:(NSNotification *)notification {
[UIView animateWithDuration:0.3 animations:^{
    [constraint setConstant:0];
    [self.myTableView layoutIfNeeded];
}];
}

这个问题是它弄乱了数据,文本字段被添加到错误的单元格和东西。

希望任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:1)

如果可能,使用UITableViewController,键盘会自动处理。

否则,请将表格视图的contentInset属性调整为outlined by Apple