Это сработало очень хорошо для меня, на случай, если кому-то все еще нужен ответ:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if (self.tableView.contentOffset.y == 0)
{
[UIView animateWithDuration:0.0 delay:0.5 options:UIViewAnimationOptionAllowUserInteraction animations:^{
} completion:^(BOOL finished) {
UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
[self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}];
}
}
Проблема заключалась в том, что клавиатура не учитывалась при перемещении к ячейке, поэтому я просто добавил вызов в небольшом блоке задержки.