Pregunta

Este es un problema de orden de operaciones

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];    
[nc addObserver:self 
       selector:@selector(keyboardWillShow:) 
           name:UIKeyboardWillShowNotification 
         object:nil];
[nc addObserver:self 
       selector:@selector(keyboardWillHide:) 
           name:UIKeyboardWillHideNotification 
         object:nil];

Y luego agrego un cuadro de texto a UITITYVIEWCELL:

[textField addTarget:self 
              action:@selector(textFieldBegin:) 
    forControlEvents:UIControlEventEditingDidBegin];

[cell addSubview:textField];

En TextFieldBegin, ScrollTorowatIndExpath para pasar a la celda que se está editando.
En el teclado Willshow, ajusto el marco de la vista de table para permitir el teclado.
Textfieldbegin se llama antes de keyboard willshow, entonces la primera vez que se muestra que no tiene espacio para desplazarse.

¿Existe una forma eligente de arreglar este supervisión?

¿Fue útil?

Solución

Puede almacenar la posición de desplazamiento actual en una variable durante el comienzo, luego en la notificación de keyboard willshow, puede volver a desplazar a cualquier posición almacenada en esa variable.

Creo que eso te permitiría mantener tus diferentes animaciones donde pertenecen.

Otros consejos

En lugar de escuchar el UIKeyboardWillShowNotification Puede reaccionar al método UITextFieldDelegate textFieldDidBeginEditing: y cambiar el tamaño/desplazamiento en ese método, ya que se llama después Se muestra el teclado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top