Der Schriftzug gehört zum Aufmacher, nicht zu sich selbst
`AsyncImage` bringt seine eigene Einblendung mit und fängt erst an zu laden, wenn es erscheint. Beim Überblenden des Aufmachers blendete sich der Schriftzug des Films deshalb getrennt und später ein, während Titelzeile, Beschreibung und Knöpfe längst mitgewandert waren — zwei Bewegungen, wo eine sein soll. Jetzt lädt er über denselben Zwischenspeicher wie alle anderen Bilder, und das Karussell holt ihn zusammen mit dem Hintergrundbild vor. Beim Erscheinen liegt er bereit und macht mit, was der Aufmacher macht. Dazu ein kleines Hilfsprogramm, das die Fensterkennung eines laufenden Programms ausgibt, damit `screencapture -l` genau dessen Fenster fotografiert und sonst nichts vom Bildschirm. Das System-Python bringt PyObjC nicht mehr mit, und ohne Kennung gibt es keinen Weg dorthin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7155f50bac
commit
e5e01838f7
@@ -138,11 +138,18 @@ struct HeroCarousel: View {
|
||||
let item = items[next]
|
||||
// Dieselben Maße wie in `HeroSection` — eine andere Größe wäre eine
|
||||
// andere Adresse und der Zwischenspeicher träfe daneben.
|
||||
guard let url = backend.artworkURL(
|
||||
let backdrop = backend.artworkURL(
|
||||
path: item.art ?? item.seriesArt ?? item.thumb,
|
||||
width: 900,
|
||||
height: 1200
|
||||
) else { return }
|
||||
Task { _ = await ArtworkLoader.shared.image(for: url) }
|
||||
)
|
||||
// Der Schriftzug gehört dazu. Fehlt er beim Überblenden, steht dort
|
||||
// erst der gesetzte Titel und das Logo springt eine Sekunde später
|
||||
// hinterher — zwei Bewegungen, wo eine sein soll.
|
||||
let logo = backend.rawImageURL(path: item.clearLogoPath)
|
||||
|
||||
for url in [backdrop, logo].compactMap(\.self) {
|
||||
Task { _ = await ArtworkLoader.shared.image(for: url) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user