Keyboard Avoidance — Wesen, Implementierungsmethoden und Schnittstellenverschiebung

Autor: IT Sectr Veröffentlicht: 2026-07-09 Lesezeit: 9 Min.

Keyboard Avoidance ist eine Technik zur Anpassung der iOS-App-Oberfläche beim Erscheinen der Systemtastatur, die Textfelder und andere interaktive Elemente überdecken kann. Ohne Implementierung dieses Mechanismus sieht der Benutzer physisch nicht, was er eingibt, was zu Fehlern und einer schlechteren Benutzererfahrung führt. Laut Apple Developer Documentation (2026) wird ab iOS 15 empfohlen, UIScrollView in Kombination mit UIScrollView.keyboardLayoutGuide für die automatische Verwaltung der Inhaltsverschiebung zu verwenden.

Wichtige Erkenntnisse

  • Keyboard Avoidance — Verschiebung des Inhalts nach oben beim Erscheinen der Tastatur, damit das aktive Textfeld sichtbar bleibt.
  • UIKeyboardWillShowNotification und UIKeyboardWillHideNotification liefern Größe und Animation der Tastatur zur Layout-Anpassung.
  • UIScrollView.keyboardLayoutGuide (iOS 15+) verwaltet automatisch die Abstände beim Ein- und Ausblenden der Tastatur.
  • IQKeyboardManager ist eine beliebte Drittanbieter-Bibliothek für automatisches Keyboard Avoidance ohne manuellen Code.
  • UITextFieldDelegate ermöglicht die Verfolgung von Bearbeitungsbeginn und -ende für eine gezielte Verschiebungssteuerung.

Was ist Keyboard Avoidance

Keyboard Avoidance ist eine Reihe von Techniken, die die Sichtbarkeit des aktiven Eingabefelds beim Erscheinen der Systemtastatur auf iOS gewährleisten. Das grundlegende Problem: Die Tastatur belegt bis zu 50 % des Bildschirms und bedeckt die untere Hälfte der Oberfläche, einschließlich Textfelder, Senden-Schaltflächen und anderer Elemente.

Es gibt drei Hauptansätze zur Implementierung: manuelle Verwaltung über Keyboard Notifications (klassischer Ansatz, funktioniert seit iOS 3.0), Verwendung von UIScrollView mit automatischem Scrollen (von Apple empfohlen) und Keyboard Layout Guide (moderner Ansatz mit iOS 15+). Die Wahl hängt von der mindestens unterstützten iOS-Version und der Komplexität der Oberfläche ab.

Laut Apple ist das Fehlen von Keyboard Avoidance einer der häufigsten Gründe für App-Ablehnungen bei der Überprüfung, wenn Textfelder vollständig von der Tastatur verdeckt werden. Die App Store Guidelines verlangen ausdrücklich, dass alle interaktiven Elemente während der aktiven Eingabe zugänglich bleiben.

Warum iOS dies nicht automatisch tut

iOS kann nicht automatisch bestimmen, welches Element sichtbar bleiben soll, weil es die Semantik der Oberfläche nicht kennt. In einem einfachen Formular mit einem Textfeld reicht es aus, den gesamten Bildschirm nach oben zu verschieben. In einer komplexen Oberfläche mit benutzerdefinierten Bereichen, schwebenden Schaltflächen und mehreren Abschnitten ist eine unterschiedliche Verhaltenslogik erforderlich.

Darüber hinaus verschieben einige Apps den Inhalt absichtlich nicht — zum Beispiel Tastaturrechner oder Editoren, bei denen die Tastatur Teil des Arbeitsbereichs ist. iOS überlässt die Entscheidung dem Entwickler und bietet flexible APIs für jedes Szenario.

Keyboard Frame Notifications

UIKeyboardWillShowNotification ist die wichtigste Benachrichtigung, die iOS vor dem Erscheinen der Tastatur sendet. Sie enthält ein CGRect mit der endgültigen Position der Tastatur im Wörterbuch UIResponder.keyboardFrameEndUserInfoKey sowie die Animationsdauer in UIResponder.keyboardAnimationDurationUserInfoKey.

Der Benachrichtigungshandler sollte die Überlappung zwischen dem aktiven Textfeld und der Tastatur berechnen und dann den unteren Abstand (contentInset oder frame) des Containers ändern. Befindet sich das Feld unterhalb der Oberkante der Tastatur, wird der Inhalt um den Überlappungsbetrag nach oben verschoben. Beim Ausblenden der Tastatur kehrt der Abstand zu seinem ursprünglichen Wert zurück.

swift
@objc func keyboardWillShow(_ notification: Notification) {
    guard let keyboardFrame = notification
        .userInfo?[UIResponder.keyboardFrameEndUserInfoKey]
        as? CGRect else { return }
    
    let keyboardHeight = keyboardFrame.height
    scrollView.contentInset.bottom = keyboardHeight
    scrollView.verticalScrollIndicatorInsets.bottom = keyboardHeight
}

Bei Verwendung von Benachrichtigungen ist es wichtig, die Animation synchron mit der Systemtastatur zu behandeln. iOS liefert die Animationskurve (UIResponder.keyboardAnimationCurveUserInfoKey) und die Dauer. Verwenden Sie UIView.animate mit diesen Parametern, damit sich der Inhalt gleichzeitig mit dem Erscheinen der Tastatur nahtlos verschiebt.

Keyboard Layout Guide in iOS 15+

UIScrollView.keyboardLayoutGuide ist eine moderne API für Keyboard Avoidance, die in iOS 15 eingeführt wurde. Sie verfolgt automatisch die Position der Tastatur und aktualisiert die Auto-Layout-Einschränkungen, die den unteren Teil der Oberfläche mit der Oberkante der Tastatur verbinden.

Zur Verwendung aktivieren Sie einfach den Layout-Guide auf einem UIScrollView oder UIStackView und befestigen die untere Inhaltseinschränkung daran. Keine manuelle Arbeit mit Benachrichtigungen, Höhenberechnung oder Animation erforderlich — das System erledigt alles automatisch und synchronisiert die Animation mit dem Ein- und Ausblenden der Tastatur.

swift
// Keyboard Layout Guide aktivieren (iOS 15+)
scrollView.keyboardLayoutGuide.followsUndockedKeyboard = true

// Untere Einschränkung an Tastaturoberkante festlegen
contentView.bottomAnchor.constraint(
    equalTo: scrollView.keyboardLayoutGuide.topAnchor
).isActive = true

followsUndockedKeyboard ist eine Eigenschaft, die bestimmt, ob der Guide auf eine Tastatur reagieren soll, die von der Unterkante gelöst werden kann (auf dem iPad). Setzen Sie sie nur auf true, wenn die Oberfläche korrekt mit einer schwebenden Tastatur funktioniert. Beim iPhone wird diese Eigenschaft ignoriert — die Tastatur ist immer an der Unterkante befestigt.

UIScrollView und Tastatur

UIScrollView ist ein Container, den Apple als Grundlage für Keyboard Avoidance empfiehlt. Wenn die Tastatur erscheint, erhöht die Scroll-View ihr contentInset.bottom, sodass der Inhalt nach oben gescrollt und das aktive Feld sichtbar gemacht werden kann.

Die Schlüsselmethode ist scrollRectToVisible, die die Scroll-View programmatisch so scrollt, dass das angegebene Rechteck (das aktive Textfeld) in den sichtbaren Bereich gelangt. Die Kombination von contentInset-Änderung mit einem scrollRectToVisible-Aufruf stellt sicher, dass das Feld nicht nur freigelegt, sondern auch im oberen Teil des sichtbaren Bereichs positioniert ist.

swift
func adjustScrollForKeyboard(
    keyboardHeight: CGFloat,
    activeField: UIView
) {
    scrollView.contentInset.bottom = keyboardHeight
    scrollView.verticalScrollIndicatorInsets.bottom = keyboardHeight
    
    var visibleRect = view.frame
    visibleRect.size.height -= keyboardHeight
    
    if activeField.frame.origin.y > visibleRect.maxY {
        scrollView.scrollRectToVisible(
            activeField.frame, animated: true
        )
    }
}

Für UIViewController mit UITableView empfiehlt Apple die Verwendung von UITableViewController, der den contentInset beim Erscheinen der Tastatur automatisch anpasst. Wenn Sie UIViewController mit einer hinzugefügten Tabelle verwenden, müssen Sie Keyboard Avoidance manuell implementieren — UITableViewController bietet dieses Verhalten nicht für benutzerdefinierte Controller.

Auto Layout und Keyboard Avoidance

Auto Layout ermöglicht die Implementierung von Keyboard Avoidance ohne Programmierung von Animationen — ändern Sie einfach die Aktivität (isActive) einer bestimmten Einschränkung oder aktualisieren Sie ihre Konstante als Reaktion auf eine Tastaturbenachrichtigung.

Ein typisches Schema: Erstellen Sie eine IBOutlet NSLayoutConstraint für den unteren Abstand der Scroll-View oder des Inhalts, setzen Sie im keyboardWillShow-Handler constraint.constant = keyboardHeight und setzen Sie es in keyboardWillHide auf 0 zurück. Aktualisieren Sie das Layout über layoutIfNeeded innerhalb eines animate-Blocks für einen sanften Übergang.

AnsatziOS-VersionKomplexitätEmpfehlung
Keyboard NotificationsiOS 3.0+MittelZur Unterstützung alter Versionen
UIScrollView + contentInsetiOS 2.0+NiedrigUniverseller Ansatz, Apple empfiehlt
Keyboard Layout GuideiOS 15+MinimalModerner Ansatz (iOS 15+)
IQKeyboardManageriOS 8.0+NullSchnelle Lösung, beliebte Bibliothek

Bei Verwendung von UIStackView funktioniert das Ändern der unteren Abstandseinschränkungen ebenfalls: Die Stack-View verteilt die untergeordneten Elemente automatisch neu. Wenn sich die Stack-View jedoch innerhalb eines UIScrollView befindet, ist es vorzuziehen, den contentInset der Scroll-View selbst zu verwalten, anstatt die Einschränkungen darin.

Drittanbieter-Lösungen für Keyboard Avoidance

IQKeyboardManager ist die beliebteste Bibliothek (über 16.000 Sterne auf GitHub), die automatisches Keyboard Avoidance ohne eine einzige Codezeile im Controller implementiert. Sie verwendet Method Swizzling, um Textfelder zu verfolgen und den Inhalt beim Erscheinen der Tastatur automatisch anzuheben.

Die Bibliothek bietet flexible Einstellungen: Sie können den Abstand zwischen Feld und Tastatur festlegen, die Funktion für bestimmte Controller aktivieren/deaktivieren und das Verhalten für UITextView und benutzerdefinierte Eingabeansichten konfigurieren. Allerdings kann Method Swizzling mit anderen Bibliotheken kollidieren, und Apple empfiehlt diesen Ansatz aufgrund unvorhersehbarer Nebeneffekte nicht für Produktionscode.

Alternativen umfassen TPKeyboardAvoiding (eine leichte Bibliothek, ~2.000 Sterne) und KeyboardManager aus der Community. Für moderne Projekte empfiehlt Apple die integrierten iOS 15+-Tools, und für Projekte mit einer niedrigeren Mindestversion — UIScrollView mit contentInset, die zuverlässigste integrierte Lösung.

Häufig gestellte Fragen

Was ist Keyboard Avoidance in iOS?

Keyboard Avoidance ist eine Technik zur Verschiebung der Oberfläche beim Erscheinen der Tastatur, damit das aktive Textfeld sichtbar bleibt. Sie wird über UIScrollView, Keyboard Notifications oder Keyboard Layout Guide iOS 15+ zur automatischen Layout-Anpassung implementiert.

Wie implementiert man Keyboard Avoidance ohne UIScrollView?

Sie können den Frame der Hauptansicht ändern, wenn die Tastatur erscheint, indem Sie ihre Höhe um die Tastaturhöhe reduzieren. Verwenden Sie UIKeyboardWillShowNotification und UIKeyboardWillHideNotification, um den Frame in einem Animationsblock mit Parametern aus dem userInfo der Benachrichtigung zu aktualisieren.

Wie funktioniert keyboardLayoutGuide?

keyboardLayoutGuide ist ein UILayoutGuide, der zu einem UIScrollView (iOS 15+) hinzugefügt wird. Er verfolgt automatisch die Oberkante der Tastatur und aktualisiert seine NSLayoutConstraint beim Ein- und Ausblenden der Tastatur, wobei die Animation mit der Systemtastatur synchronisiert wird.

Welche Drittanbieter-Bibliotheken gibt es für Keyboard Avoidance?

IQKeyboardManager ist die beliebteste, benötigt keinen Code. TPKeyboardAvoiding ist eine leichte Alternative. Für neue Projekte sind die integrierten iOS 15+-Tools vorzuziehen, da Drittanbieter-Bibliotheken Method Swizzling verwenden, das Apple nicht empfiehlt.

Wie deaktiviert man Keyboard Avoidance für einen bestimmten Bildschirm?

Wenn Sie IQKeyboardManager verwenden, rufen Sie enabled = false für den spezifischen UIViewController auf. Bei manueller Implementierung abonnieren Sie einfach keine Tastaturbenachrichtigungen auf diesem Bildschirm oder setzen Sie den contentInset beim Erscheinen der Tastatur auf null zurück.

Zusammenfassung

  • Keyboard Avoidance — eine wesentliche Technik für iOS-Apps mit Texteingabe, die verhindert, dass Felder von der Tastatur verdeckt werden.
  • UIKeyboardWillShowNotification und UIKeyboardWillHideNotification — klassische API zur manuellen Verwaltung der Inhaltsverschiebung.
  • UIScrollView mit contentInset und scrollRectToVisible — eine universelle, von Apple empfohlene Lösung.
  • Keyboard Layout Guide (iOS 15+) — moderner Ansatz ohne manuelle Benachrichtigungen, mit Auto Layout.
  • Auto-Layout-Einschränkungen mit Konstantenaktualisierung in einem Animationsblock sorgen für einen sanften Inhaltsübergang.
  • IQKeyboardManager — beliebte Drittanbieter-Bibliothek für schnelle Implementierung, aber mit Method-Swizzling-Einschränkungen.
  • Apple empfiehlt UIScrollView mit keyboardLayoutGuide für Projekte mit iOS 15+ und contentInset für Projekte mit älteren Versionen.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch