IQKeyboardManager hace esto por usted SIN LÍNEA DE CÓDIGO , solo necesita arrastrar y soltar el archivo fuente relacionado al proyecto. IQKeyboardManager también es compatible con la orientación del dispositivo , la gestión automática de UIToolbar , keyboardDistanceFromTextField y mucho más de lo que piensa.
Aquí está el diagrama de flujo de control:
Paso 1: - Añadido notificaciones globales de UITextField
, UITextView
y UIKeyboard
en una clase Singleton. Lo llamé IQKeyboardManager .
Paso 2: - Si lo encuentra UIKeyboardWillShowNotification
, UITextFieldTextDidBeginEditingNotification
o UITextViewTextDidBeginEditingNotification
las notificaciones, a continuación, tratar de obtener topMostViewController
la instancia de la UIWindow.rootViewController
jerarquía. Con el fin de destapar adecuadamente UITextField
/ UITextView
en él, topMostViewController.view
's marco necesita ser ajustado.
Paso 3: - Distancia de movimiento esperada calculada topMostViewController.view
con respecto a la primera respuesta UITextField
/ UITextView
.
Paso 4: - Movido topMostViewController.view.frame
hacia arriba / abajo de acuerdo a la distancia medida que se espera.
Paso 5: - Si se encuentra UIKeyboardWillHideNotification
, UITextFieldTextDidEndEditingNotification
o UITextViewTextDidEndEditingNotification
notificación, intente nuevamente obtener la topMostViewController
instancia de la UIWindow.rootViewController
jerarquía.
Paso 6: - La distancia perturbada calculada de la topMostViewController.view
cual debe restaurarse a su posición original.
Paso 7: - Restaurado topMostViewController.view.frame
según la distancia perturbada.
Paso 8: - Instancia de instancia IQKeyboardManager singleton instanciada en la carga de la aplicación, por lo que cada UITextField
/ UITextView
en la aplicación se ajustará automáticamente de acuerdo con la distancia de movimiento esperada.
Eso es todo