IQKeyboardManager zrobi to za Ciebie BEZ LINII KODU , wystarczy przeciągnąć i upuścić powiązany plik źródłowy do projektu. IQKeyboardManager obsługuje również orientację urządzenia , automatyczne zarządzanie paskiem narzędzi UIT , keyboardDistanceFromTextField i znacznie więcej niż myślisz.

Oto schemat kontroli:

Krok 1: - Dodano powiadomienia o globalne UITextField, UITextVieworaz UIKeyboardw klasie singleton. Nazwałem to IQKeyboardManager .
Krok 2: - W przypadku stwierdzenia UIKeyboardWillShowNotification, UITextFieldTextDidBeginEditingNotificationczy UITextViewTextDidBeginEditingNotificationpowiadomień, a następnie postarać się o topMostViewControllerwystąpienie z UIWindow.rootViewControllerhierarchii. Aby prawidłowo ją odsłonić UITextField/ UITextViewna niej topMostViewController.viewnależy wyregulować ramkę.
Krok 3: - Obliczona oczekiwana odległość ruchu topMostViewController.vieww odniesieniu do pierwszej odpowiedzi UITextField/ UITextView.
Krok 4: - Przesunięto w topMostViewController.view.framegórę / w dół zgodnie z oczekiwaną odległością ruchu.
Krok 5: - W przypadku stwierdzenia UIKeyboardWillHideNotification, UITextFieldTextDidEndEditingNotificationczy UITextViewTextDidEndEditingNotificationzgłoszenie, a następnie ponownie spróbować uzyskać topMostViewControllerwystąpienie z UIWindow.rootViewControllerhierarchii.
Krok 6: - Obliczona zakłócona odległość, topMostViewController.viewktórą należy przywrócić do pierwotnej pozycji.
Krok 7: - Przywrócenie topMostViewController.view.framezgodnie z zakłóconą odległością.
Krok 8: - Utworzono instancję pojedynczej instancji klasy IQKeyboardManager podczas ładowania aplikacji, więc każde UITextField/ UITextVieww aplikacji dostosuje się automatycznie zgodnie z oczekiwaną odległością ruchu.
To wszystko