Die Einstellungen lagen hinter der Leiste

Ein Sicherheitsrand je Bildschirm wandert nicht in einen geschobenen Bildschirm
mit. Die Einstellungen schieben ihre Unterseiten über gewöhnliche Verweise, und
dort fehlte er: die Beschriftungen lagen hinter der Seitenleiste und wurden von
der Maske abgeschnitten — zu sehen waren nur die rechtsbündigen Werte.

Der Platz für die Leiste ist jetzt ein echter Rand am ganzen TabView. Der gilt
für alles, was darin aufgeht.

Dazu: der Aufmacher nimmt zweiundachtzig statt hundert Prozent der Höhe. Über
die ganze Höhe sah er aus wie die einzige Seite der App — von den Reihen war
ohne Scrollen nichts zu sehen. So lugt die erste gerade herein.

Und das Umschalten zwischen Seite und oben hat eine Bewegung: die Leiste kommt
von der Seite beziehungsweise von oben herein und geht dorthin zurück. Die
Überlagerung behält dabei ihre Ausrichtung — wechselte sie mit, sprang die
Leiste im Übergang an die neue Ecke, statt dorthin zu wandern.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-13 20:44:20 +02:00
co-authored by Claude Opus 5
parent ab0adef8d4
commit 9a5412dc5d
3 changed files with 61 additions and 16 deletions
+28
View File
@@ -34,6 +34,34 @@ final class LayoutSnapshots: XCTestCase {
/// Beim Umschalten steht die Leiste kurz falsch, bevor sie sich fängt.
/// Fotografiert wird in Serie, weil genau der Zwischenzustand gesucht ist
/// und ein einzelnes Bild danach nichts zeigt.
/// Eine Unterseite der Einstellungen.
///
/// Sie wird über einen gewöhnlichen Verweis geschoben und nicht über eine
/// angemeldete Route — genau dort fehlte der Platz für die Seitenleiste,
/// und die Beschriftungen lagen hinter ihr.
func testPushedSettingsScreen() throws {
let app = XCUIApplication()
app.launchArguments = [
"-FlixyStubServer", "http://127.0.0.1:8096",
"-flixy.navigation.placement", "sidebar",
]
app.launch()
XCUIDevice.shared.orientation = .landscapeLeft
XCTAssertTrue(app.staticTexts["Weiterschauen"].waitForExistence(timeout: 20))
app.buttons["Einstellungen"].firstMatch.tap()
Thread.sleep(forTimeInterval: 2)
shoot(app, "30-einstellungen")
let server = app.buttons["Server"].firstMatch
if server.waitForExistence(timeout: 5) {
server.tap()
Thread.sleep(forTimeInterval: 2)
shoot(app, "31-server")
}
}
func testSidebarToggle() throws {
let app = XCUIApplication()
// Die Stellung der Leiste wird gespeichert, und ein voriger Lauf hat