我的应用程序中有几个UITableViewControllers。我在某些UITextFields中有UITableViewCells。有时tableView会在键盘出现时自动调整大小,但并非总是如此。

我已经举了几个例子。两者都具有作为当前UITextFieldfirstResponder。我都拖动了两个屏幕快照以显示滚动指示器。

出现键盘时,左侧的UITableViewController调整为tableView的大小,而右侧的UITableViewController则没有。我究竟做错了什么?

编辑

感谢大家在这个问题上为我提供帮助。仍然没有解决。他们都有一个UINavigationController作为他们的parentViewController。右边的一个是UINavigationControllers topViewController,而左边的一个是topViewController。任何帮助,将不胜感激。

最佳答案

因此,我想出了一种解决方法:

- (void)setContentInsetWithTextField:(UITextField *)textField
{
    CGFloat keyboardHeight = 216;

    CGFloat movement = (textField.isFirstResponder ? keyboardHeight : -keyboardHeight);

    UIEdgeInsets contentInset = self.tableView.contentInset;
    contentInset.bottom = contentInset.bottom + movement;
    self.tableView.contentInset = contentInset;
}


textFieldDidBeginEditingtextFieldDidEndEditing中调用此方法即可解决问题!

10-08 17:49