我的应用程序中有一个自定义 tableView。在这个自定义单元格中,我有一个文本字段。当用户点击此文本字段时,将出现键盘。此时我想更改 Tableview 中所选单元格的位置。我附上了实际输出的快照,还附上了我预期的快照。
图像 1 - 普通屏幕,它包含自定义 UITableView。
当我选择文本字段(在上图中标记为红色圆圈)时,键盘会像图 2 中那样出现。
但我除了将所选文本字段的位置更改为键盘的上方之外,如图 3 所示。
请帮我解决这个问题。
最佳答案
如果代码中只有一个 textField,简单的方法可能是:
-向键盘外观添加观察者:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardAppear) name:UIKeyboardWillShowNotification object:nil];
-及其方法:
-(void)keyboardAppear
{
[self.tableView setContentOffset:CGPointMake(0, yOfYourTextField)];
}
如果您有多个文本字段,最好的选择是对所有这些文本字段实现委托(delegate),并且其委托(delegate)滚动 tableView。
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.tableView setContentOffset:CGPointMake(0, textField.tag * 40 -70) animated:YES];
//.. more if you need
}
如果您在 UIViewController 中使用 UITableViewController 而不是 tableView,则滚动行为是自动的。
关于ios - iOS中动态改变UITableViewCell的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27397220/