滚动表格

时间:2011-12-07 08:09:50

标签: iphone xcode uitableview uiscrollview

在我的表格中,我使用UITextField作为子视图的单元格。我也可以编辑它,但只对表格中的上部单元格我也看到,我编辑的内容,因为键盘隐藏了下面的单元格。

现在我该怎么做,滚动我要编辑的单元格移到顶部?

我试过

selectRowAtIndexPath:indexPathOfCurrrentCell animated:NO scrollPostion:UITableViewSchrollPositionTop

scrollToRowAtIndexPath:idexPathOfCurrentCell atScrollPosition:UITableViewSchrollPositionTop animated:NO

但它都不起作用。我必须使用其他命令或添加其他内容吗?我该改变什么?

由于

4 个答案:

答案 0 :(得分:2)

如果无法手动将tableView滚动到单元格可见的位置;代码也不会。

解决方案是将tableView的框架设置为具有尊重键盘高度170点的高度。

您可以尝试这样的事情:

tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.frame.size.height-170);

在textField成为第一个响应者时调用的方法中执行此操作。

答案 1 :(得分:0)

看一下这篇文章。我想你会找到你需要的东西。

Get UITableView to scroll to the selected UITextField and Avoid Being Hidden by Keyboard

答案 2 :(得分:0)

使用UITextField的委托方法

答案 3 :(得分:0)

即使我遇到了这个滚动问题,我使用下面的逻辑来摆脱这个问题。 这工作正常

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
  if (textField==textFieldOfYourInterest ) 
  {
    CGRect frame = self.view.frame;
      if ([textField isFirstResponder] && self.view.frame.origin.y >= 0)
      {
        frame.origin.y -= 70;
      }
      else if (![textField isFirstResponder] && self.view.frame.origin.y < 0)
      {
        frame.origin.y += 70;
      }

      [self.view setFrame:frame];
  }

}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{

   CGRect frame = self.view.frame;

   if (![topTextFieldName isFirstResponder] && self.view.frame.origin.y < 0)
   {
    frame.origin.y += 70;
   }

   [self.view setFrame:frame];

   NSLog(@"text field should return");
   [textField resignFirstResponder];

   return YES;
}

如果有任何问题归还我。

由于 Nagaraja Sathe