#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.