Хороший способ, который также может выглядеть хорошо, - это не просто прокрутить tableView, а вместо этого переместить весь tableView (и, возможно, его окружающий вид) вверх на высоту клавиатуры (и, конечно же, снова опустить при увольнении) .
myTableView.center = CGPointMake(myTableView.center.x, myTableView.center.y - keyboardHeight); //and vice versa for keyboard dismissal
Если это работает, вы можете поэкспериментировать с анимацией.
Если вы хотите иметь возможность прокручивать tableView вверх дальше, чем обычно, вы можете попробовать установить его свойство contentSize
до прокрутки. Поскольку UITableView
является подклассом UIScrollView
, это должно сработать, если Apple каким-то образом не изменила свое поведение.
myTableView.contentSize = CGSizeMake(myTableView.contentSize.width, myTableView.contentSize.height + keyboardHeight); //and vice versa when keyboard is dismissed