IQKeyboardManager lo fa per te SENZA LINEA DI CODICE , devi solo trascinare e rilasciare il file sorgente correlato al progetto. IQKeyboardManager supporta anche l' orientamento del dispositivo , la gestione automatica della barra degli strumenti UIT , keyboardDistanceFromTextField e molto altro di quanto pensi.

Ecco il diagramma di flusso di controllo:

Fase 1: - Aggiunta notifiche globali di UITextField, UITextViewe UIKeyboardin una classe Singleton. L'ho chiamato IQKeyboardManager .
Fase 2: - Se trovato UIKeyboardWillShowNotification, UITextFieldTextDidBeginEditingNotificationo UITextViewTextDidBeginEditingNotificationle notifiche, quindi cercare di ottenere topMostViewControlleresempio dalla UIWindow.rootViewControllergerarchia. Per correttamente uncover UITextField/ UITextViewsu di esso, topMostViewController.view's telaio deve essere regolata.
Fase 3: - Distanza di movimento prevista calcolata topMostViewController.viewrispetto alla prima risposta UITextField/ UITextView.
Step4: - Spostato topMostViewController.view.framesu / giù in base alla distanza di movimento prevista.
Fase 5: - Se trovato UIKeyboardWillHideNotification, UITextFieldTextDidEndEditingNotificationo UITextViewTextDidEndEditingNotificationla notifica, poi di nuovo cercare di ottenere topMostViewControlleresempio dalla UIWindow.rootViewControllergerarchia.
Step6: - Distanza disturbata calcolata topMostViewController.viewche deve essere ripristinata nella sua posizione originale.
Step7: - Ripristinato topMostViewController.view.framein base alla distanza disturbata.
Passaggio 8: - Istanza della classe IQKeyboardManager singleton istanziata al caricamento dell'app, quindi ogni UITextField/ UITextViewnell'app verrà regolata automaticamente in base alla distanza di spostamento prevista.
È tutto