iOS7 滚动到 UITableViewController 行,同时在 UITableViewCell 中编辑具有正确



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

-(void)textViewDidBeginEditing:(UITextView *)textView
{   
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell]
                          atScrollPosition:UITableViewScrollPositionTop
                                  animated:YES];
}

问题是它不适用于我的表格视图中的最后几个单元格。我猜这与表格视图的内容大小有关。 有没有正确的方法来调整表格视图的偏移量,以便最后一个单元格在键盘上方滚动?

相反,

如果

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

您可以使用

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

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

最新更新