In iOS 26 führt der neue Liquid Glass-Effekt mit .glassEffect() zu unerwarteten Problemen, wenn mehrere Buttons nah beieinander liegen. Ein Entwickler erlebte dies am eigenen Leib: Ein Anmelde-Button funktionierte problemlos, doch der darunterliegende Login-Button reagierte nicht mehr auf Taps – ohne Fehlermeldung oder Absturz. Der Grund? Eine nicht offensichtliche Interaktion zwischen Glas-Effekt und Gestensteuerung.
Warum funktionieren manche Buttons plötzlich nicht mehr?
Ein typisches Szenario: Zwei Buttons sind in einem VStack mit 26pt Abstand platziert und verwenden beide den neuen .glassEffect(.clear.interactive()). Während der obere Button normal reagiert, bleibt der untere Button stumm, obwohl der Code identisch ist. Der Fehler tritt auf, weil iOS 26 automatisch benachbarte Glasflächen zu einer einzigen interaktiven Einheit verschmilzt, wenn sie sich zu nah sind.
Das Problem entsteht durch das Standardverhalten von .glassEffect(): Ohne explizite Formangabe (z. B. .capsule oder .rectangle) nimmt das System eine rechteckige Glasfläche an. Diese verschmolzenen Glasflächen leiten Taps dann an den ersten Button in der Hierarchie weiter – in diesem Fall den oberen Button. Der darunterliegende Button erhält die Taps nie, da sie bereits von der verschmolzenen Glasfläche abgefangen werden.
Wichtig: Dieser Effekt tritt nur auf, wenn beide Buttons den .interactive()-Modifier verwenden. Ohne diese Gestensteuerung funktioniert der Tap normal. Zudem gibt es keine Fehlermeldung oder visuelle Rückmeldung, was die Fehlersuche besonders frustrierend macht.
Die einfache Lösung: Explizite Form für Glasflächen
Der Fehler lässt sich mit einer einzigen Zeile Code beheben: Geben Sie jedem Button eine eindeutige Glasform, um die automatische Verschmelzung zu verhindern. Verwenden Sie dazu den in:-Parameter:
// Funktioniert nicht (automatische Verschmelzung)
.glassEffect(.clear.interactive())
// Funktioniert korrekt (explizite Form)
.glassEffect(.clear.interactive(), in: .capsule)Durch die Angabe einer Kapselform (in: .capsule) erhält jeder Button seine eigene interaktive Glasfläche. Die Taps werden dann korrekt an den jeweiligen Button weitergeleitet. Alternativ können auch andere Formen wie .rectangle oder .roundedRectangle verwendet werden, solange sie eindeutig sind.
Ein wiederverwendbarer Modifier für iOS 26
Für größere Projekte empfiehlt es sich, einen ViewModifier zu erstellen, der den Glas-Effekt mit der korrekten Form kombiniert. Dies vereinfacht die Wartung und stellt sicher, dass alle Buttons konsistent behandelt werden:
struct GlassButtonModifier: ViewModifier {
func body(content: Content) -> some View {
if #available(iOS 26.0, *) {
content
.glassEffect(.clear.interactive(), in: .capsule)
} else {
content
.background(.ultraThinMaterial, in: Capsule())
}
}
}Dieser Modifier prüft zunächst, ob iOS 26 verfügbar ist. Falls nicht, fällt er auf den bewährten ultraThinMaterial-Effekt zurück. So bleibt der Code auch für ältere iOS-Versionen kompatibel.
Wann müssen Sie besonders aufpassen?
Dieses Problem betrifft nicht nur VStacks, sondern auch andere Layout-Kombinationen wie HStack, ZStack oder sogar überlappende Views. Besonders riskant wird es in folgenden Fällen:
- Zwei oder mehr
.glassEffect()-Views liegen direkt nebeneinander. - Sie verwenden
.interactive()für visuelle Tap-Feedbacks wie Druckeffekte oder Bounce-Animationen. - Sie haben keine explizite Form für die Glasflächen angegeben.
Ein häufiger Irrtum: Der erste Button in der Hierarchie funktioniert meist problemlos. Das Problem fällt daher oft erst auf, wenn Nutzer einen bestimmten Button nicht bedienen können – etwa den Login-Button in einem Anmeldeformular. In solchen Fällen kann die Fehlersuche zeitaufwendig sein, da es keine offensichtlichen Hinweise auf die Ursache gibt.
Fazit: Immer die Form explizit angeben
Der neue Liquid Glass-Effekt in iOS 26 bringt zwar ansprechende visuelle Effekte, aber auch unerwartete Stolpersteine. Der Schlüssel zur Vermeidung von Tap-Problemen liegt in der expliziten Angabe einer Glasform für jeden Button über den in:-Parameter. Dies verhindert die automatische Verschmelzung und stellt sicher, dass alle Buttons korrekt auf Nutzerinteraktionen reagieren.
Investieren Sie die Zeit, um Ihre Glas-Buttons entsprechend anzupassen – Ihr zukünftiges Ich wird es Ihnen danken, wenn keine Nutzer mehr über nicht funktionierende Buttons berichten. Mit dieser kleinen Änderung bleibt Ihr UI nicht nur optisch ansprechend, sondern auch voll funktionsfähig.
KI-Zusammenfassung
iOS 26'deki Sıvı Cam efektini kullanırken karşılaşılan beklenmedik bir hata, komşu düğmelerin dokunuşlarını sessizce yutabilir. Bu sorunun nedenini ve basit çözümünü öğrenin.