我在tableview中有一个带有文本框的分组表格视图。为了让键盘不隐藏文本字段,在textFieldShouldBeginEditing中,我调用了scrollToRowAtIndexPath方法,并将正在编辑的行的滚动位置设置为tableview的顶部。- [UITableView scrollToRowAtIndexPath:]滚动,但返回第1行
滚动确实发生,但只要键盘出现(即一旦textFieldShouldBeginEditing返回YES),表格就会滚动回原来的位置,并将第一部分的第一行显示在顶部。在调用scrollToRowAtIndexPath之后,我没有调用reloadTable。
该问题仅出现在第4行和第5行(bdate和zip)password2按预期工作。
这是我使用滚动到一个特定的行
if(textField == password2){
indPath = [NSIndexPath indexPathForRow:3 inSection:0];
[self.tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
return YES;
}
else if(textField == bdate){
indPath = [NSIndexPath indexPathForRow:4 inSection:0];
[self.tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
return YES;
}
else if(textField == zip){
indPath = [NSIndexPath indexPathForRow:5 inSection:0];
[self.tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
return YES;
}
有人能告诉我什么可能会错误的代码?任何见解都会有帮助。
感谢
你有没有解决过这个问题?你最终如何实现路易斯的答案? – cheeesus 2012-05-01 12:16:15