1

我的 UITableViewController 上的单元格有一个可以编辑的 textField。当我编辑 textField 时,我需要滚动 tableview 以使当前字段所在的行位于键盘上方。这是我正在使用的代码:

-(void)textViewDidBeginEditing:(UITextView *)textView
{   
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];

    [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell]
                          atScrollPosition:UITableViewScrollPositionTop
                                  animated:YES];
}

问题是它不适用于我的表格视图中的最后几个单元格。我猜它与tableview的contentSize有关。是否有适当的方法来调整 tableview 的偏移量,以便最后一个单元格在键盘上方滚动?

4

1 回答 1

5

相反,如果

[self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];

您可以使用

[self.tableView setContentOffset:CGPointMake(0, CGRectGetMinY(cell.frame)) animated:YES];

无论您是点击第一个还是最后一个单元格,这都会将您选择的单元格滚动到屏幕顶部(如 UITableViewScrollPositionTop)。控制 ContentOffset 您可以设置所选单元格的位置。

于 2013-10-22T23:45:25.680 回答