我的应用程序中有几个UITableViewControllers
。我在某些UITextFields
中有UITableViewCells
。有时tableView
会在键盘出现时自动调整大小,但并非总是如此。
我已经举了几个例子。两者都具有作为当前UITextField
的firstResponder
。我都拖动了两个屏幕快照以显示滚动指示器。
出现键盘时,左侧的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;
}
在
textFieldDidBeginEditing
和textFieldDidEndEditing
中调用此方法即可解决问题!