O IQKeyboardManager faz isso para você sem NO LINE OF CODE , apenas é necessário arrastar e soltar o arquivo de origem relacionado ao projeto. O IQKeyboardManager também suporta Orientação a dispositivos , Gerenciamento automático da barra de ferramentas do UIT , keyboardDistanceFromTextField e muito mais do que você pensa.

Aqui está o fluxograma de controle:

Passo 1: - Adicionado notificações globais de UITextField, UITextViewe UIKeyboardem uma única classe. Eu chamei de IQKeyboardManager .
Etapa 2: - Se encontrado UIKeyboardWillShowNotification, UITextFieldTextDidBeginEditingNotificationou UITextViewTextDidBeginEditingNotificationnotificações, tente obter a topMostViewControllerinstância da UIWindow.rootViewControllerhierarquia. A fim de adequadamente uncover UITextField/ UITextViewsobre ele, topMostViewController.view's quadro precisa ser ajustado.
Etapa 3: - Distância calculada de movimento esperada topMostViewController.viewem relação à primeira resposta UITextField/ UITextView.
Passo 4: - Movido para topMostViewController.view.framecima / baixo de acordo com a distância de movimento esperada.
Etapa 5: - Se encontrado UIKeyboardWillHideNotification, UITextFieldTextDidEndEditingNotificationou UITextViewTextDidEndEditingNotificationnotificação, tente novamente obter topMostViewControllerinstância da UIWindow.rootViewControllerhierarquia.
Etapa 6: - Distância perturbada calculada da topMostViewController.viewqual precisa ser restaurada para sua posição original.
Passo 7: - Restaurado de topMostViewController.view.frameacordo com a distância perturbada.
Etapa 8: - Instância da classe IQKeyboardManager singleton instanciada no carregamento do aplicativo, para que todos UITextField/ UITextViewno aplicativo se ajustem automaticamente de acordo com a distância de movimentação esperada.
Isso é tudo