-
25-10-2019 - |
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?
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.