我有一个固定行数(7)的 tableView。每行由一个标签+一个文本字段组成。
当触摸文本文件时,会显示虚拟键盘,这会导致弹出框调整大小,并且在新的大小下,7 行中只有 4 行可见。我想要做的是,每次用户触摸一个新的文本字段时,表格视图都会滚动到包含它的单元格。
我试过了
- (void)textFieldDidBeginEditing:(UITextField *)textField{
CGPoint point = [textField.superview convertPoint:textField.frame.origin toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
NSLog(@"Row %d section %d", indexPath.row, indexPath.section);
[tableView reloadData];
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];
}
并且
- (void)textFieldDidBeginEditing:(UITextField *)textField{
CGPoint point = [textField.superview convertPoint:textField.frame.origin toView:self.tableView];
CGPoint contentOffset = tableView.contentOffset;
contentOffset.y += (point.y - self.navigationController.navigationBar.frame.size.height); // Adjust this value as you need
[tableView setContentOffset:contentOffset animated:YES];
}
但它们都不起作用。正在调用该方法(我已设置委托)。由于虚拟键盘引起的调整大小,我很确定它不起作用,但我不知道我可以解决谁。
有什么帮助吗?非常感谢