动态更改iOS中UITableViewCell的位置

时间:2014-12-10 09:18:33

标签: ios objective-c iphone uitableview

我的应用程序中有一个自定义tableView。在这个自定义单元格中,我有一个文本字段。当用户点击此Textfield时,将出现键盘。此时我想在Tableview中更改所选单元格的位置。在这里,我附上了实际输出的快照,我也附上了我预期的快照。

图像1 - 普通屏幕,它包含自定义UITableView。

enter image description here

当我选择文本字段(在上图中标记为红色圆圈)时,键盘会出现在图像2中。

enter image description here

但我除了将所选文本字段的位置更改为键盘的上方,如图3所示。

enter image description here

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果代码中只有textField,那么简单的方法可能是:

- 将观察者添加到键盘外观:

  [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardAppear) name:UIKeyboardWillShowNotification object:nil];

- 其方法:

  -(void)keyboardAppear
{
[self.tableView setContentOffset:CGPointMake(0, yOfYourTextField)];
}

如果你有几个textField,最好的选择是实现所有这个textField的委托,它的委托滚动tableView。

 -(void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.tableView setContentOffset:CGPointMake(0, textField.tag * 40 -70) animated:YES];
//.. more if you need
}

如果在UIViewController中使用UITableViewController而不是tableView,则滚动行为是自动的。