как управлять прокруткой табличного представления, содержащего текстовые поля

#objective-c #uitableview

#objective-c #uitableview

Вопрос:

Когда я пытаюсь прокрутить и отредактировать ячейки внизу UITableView, мне не удается правильно расположить свои ячейки над клавиатурой. На самом деле клавиатура скрывает половину табличного представления.

Также я создал пользовательский класс ячеек отдельно для своих ячеек. Таким образом, делегаты текстовых полей доступны только в этом классе. я не могу использовать их в контроллере представления моей таблицы biew

Я видел много ответов, в которых говорилось об изменении размеров представления и т.д… но пока ни один из них не работал хорошо.

может ли кто-нибудь помочь мне с этим с помощью фрагмента кода

Ответ №1:

Более простой способ сделать это сейчас (не знаю, как долго это было доступно): если вы переопределяете viewWillAppear, обязательно включите вверху

 [super viewWillAppear:animated];
  

Я был полностью готов начать прослушивание событий клавиатуры и установку и удаление ограничений, и только эта одна строка устранила весь этот другой код.

Ответ №2:

Вы хотите настроить компонент ScrollView в UITableView. Настройте контроллер представления так, чтобы он отвечал на уведомления с клавиатуры. Вот так :

 - (void)viewWillAppear:(BOOL)animated 
{
    [super viewWillAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

}


- (void)viewWillDisappear:(BOOL)animated 
{
    [super viewWillDisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
  

Затем создайте keyboardWillShow: function и настройте tableview, манипулируя TableView.scrollview.contentOffset (это может быть TableView.contentOffset, я не рядом с xcode). Убедитесь, что вы создали скрытую функцию клавиатуры, чтобы настроить ее обратно на 0,0.