-
25-10-2019 - |
Вопрос
Это проблема операций
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[nc addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
А потом я добавляю текстовое поле в UitableViewCell:
[textField addTarget:self
action:@selector(textFieldBegin:)
forControlEvents:UIControlEventEditingDidBegin];
[cell addSubview:textField];
В Textfieldbegin я ScrolltorOwAtIndexPath перейти к отредактированию клетки.
В Keyboardshow я настраиваю раму таблицы, чтобы учесть клавиатуру.
Textfieldbegin называется до КлавишВ .show, поэтому в первый раз, когда показано, у него нет места для прокрутки.
Есть ли эликент, чтобы исправить этот надзор?
Решение
Вы можете сохранить текущую позицию прокрутки в переменной во время начала, затем в уведомлении о клавиатуре вы можете перепроверчить любую позицию, хранящуюся в этой переменной.
Я думаю, что это позволило бы вам сохранить разные анимации там, где они принадлежат.
Другие советы
Вместо того, чтобы слушать UIKeyboardWillShowNotification
Вы можете отреагировать на метод UitextfieldDelegate textFieldDidBeginEditing:
и изменить размер/прокрутить в этом методе, так как он называется после клавиатура показана.