文本字段开始编辑iphone时的表格视图滚动

文本字段开始编辑iphone时的表格视图滚动,iphone,keyboard,uitableview,Iphone,Keyboard,Uitableview,我有iphone应用程序中的表视图控制器。表视图有两个部分。第一部分有两行,第二部分有一行。第二部分有一个自定义表视图单元格 第二部分有一个文本字段,当文本字段开始编辑并弹出键盘时,该字段将隐藏。我想在键盘弹出时滚动此表格视图 我尝试了下面的代码,我在不同的网站上遇到了这些代码,但是没有成功 提前谢谢 -(void) textFieldDidBeginEditing:(UITextField *)textField { CGRect textFieldRect = [textField

我有iphone应用程序中的表视图控制器。表视图有两个部分。第一部分有两行,第二部分有一行。第二部分有一个自定义表视图单元格

第二部分有一个文本字段,当文本字段开始编辑并弹出键盘时,该字段将隐藏。我想在键盘弹出时滚动此表格视图

我尝试了下面的代码,我在不同的网站上遇到了这些代码,但是没有成功

提前谢谢

-(void) textFieldDidBeginEditing:(UITextField *)textField {

    CGRect textFieldRect = [textField frame];
    [self.tableView scrollRectToVisible:textFieldRect animated:YES];
} 
                          atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}

-(void) textFieldDidBeginEditing:(UITextField *)textField {

    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
    [self.tableView scrollToRowAtIndexPath:[tableView indexPathForCell:cell] 
                          atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
您希望使用表视图的setContentOffset方法。确定垂直滚动的大小(以像素为单位),然后:

CGFloat verticalScroll = ... your code here ...
[self.tableView setContentOffset:CGPointMake(0, verticalScroll) animated:YES];

我在静态手机TVC上碰到过这个。当覆盖视图将出现而不调用其超级视图时,会出现问题。因此,如果你正在这样做,一定要打电话

[super viewWillAppear:animated];

在视图的顶部将出现

我的问题是在

- (UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
功能。如果执行此操作,UITableView自动滚动将不起作用

因此,您必须做一些算术运算,计算出最后一行何时显示,并将您的特殊UITableViewCell与所有其他单元格一起放在这里

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

好主意,我在添加viewwillbeen后忽略了这一点:一个静态TVC,而不是另一个。