Вопрос

Это проблема операций

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: и изменить размер/прокрутить в этом методе, так как он называется после клавиатура показана.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top