我的应用程序中有一个自定义tableView。在这个自定义单元格中,我有一个文本字段。当用户点击此Textfield时,将出现键盘。此时我想在Tableview中更改所选单元格的位置。在这里,我附上了实际输出的快照,我也附上了我预期的快照。
图像1 - 普通屏幕,它包含自定义UITableView。
当我选择文本字段(在上图中标记为红色圆圈)时,键盘会出现在图像2中。
但我除了将所选文本字段的位置更改为键盘的上方,如图3所示。
请帮我解决这个问题。
答案 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,则滚动行为是自动的。