У меня была аналогичная проблема, и установил ее используя предоставленную информацию here от автора библиотеки у.
Ключевая фраза:
библиотека логика, чтобы найти ближайший Scrollview от TextField. и в вашем случае это tableView, поэтому библиотека выбирает tableView для прокрутки.
Таким образом, решение, которое я использовал, заключается в отключении свойства прокрутки UITableView при редактировании текстового поля/вида (использование методов делегата), а затем повторного включения его после завершения редактирования. Это гарантирует, что библиотека не обнаруживает UITableView как прокручиваемую, и поэтому она игнорирует ее, а затем вместо этого перемещает ваш контейнерный вид - как вы и предполагали. После того, как представление переместилось вверх по вашему желанию, вы можете снова включить прокрутку через UIKeyboardWillShowNotification.
Так, например, для UITextField:
-(void) textFieldDidBeginEditing:(UITextField *)textField {
[self.tableView setScrollEnabled:NO];
}
- (void) textFieldDidEndEditing:(UITextField *)textField {
[self.tableView setScrollEnabled:YES];
}
Однако до сих пор позволяет прокрутку после вида переместился, я зарегистрировался для уведомления клавиатуры, а затем дает прокрутку раз клавиатура вверх:
-(void) keyboardWillShow {
[self.tableView setScrollEnabled:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow)
name:UIKeyboardWillShowNotification
object:nil];
}
Я уточнил ваш вопрос, но до сих пор не хватает информации. Покажите весь код класса, который это делает. – BaseZen