forked from fritob/Camper-Monitor
Die Vorlage lag auf einer quadratischen 1254×1254-Leinwand, der Van darin füllte aber nur rund 59% der Höhe – bei deklariertem sideAspect = 1 (quadratisch) rechnete SwiftUI die Anzeigegrösse für dieses volle Quadrat, wodurch der Van in der gemeinsamen Bildhülle deutlich kleiner erschien als Vanster, dessen Vorlage eng auf die Silhouette zugeschnitten ist. Bild jetzt auf den Inhalt zugeschnitten (plus kleiner Rand, wie bei Vanster), sideAspect entsprechend von 1 auf das tatsächliche Verhältnis der zugeschnittenen Vorlage (1212×790) angepasst. In beiden Asset-Katalogen ersetzt (iPhone und Watch, siehe vorherigen Commit zur Watch-Fahrzeuggrafik). Die Heckansicht war laut Rückmeldung bereits optisch stimmig und blieb unverändert. Build (App + Watch) und Tests grün. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
52 lines
1.5 KiB
Swift
52 lines
1.5 KiB
Swift
import Foundation
|
||
|
||
/// Welche Silhouette die Fahrzeug-Ansicht des Neigungsmessers zeigt.
|
||
///
|
||
/// Jeder Fall ist ein zusammengehöriges Bilderset aus Seiten- und
|
||
/// Heckansicht in Assets.xcassets, beide als Vorlage ("template")
|
||
/// exportiert, damit `foregroundStyle` sie einfärben kann. Im Picker wird
|
||
/// nur die Seitenansicht gezeigt.
|
||
enum VehicleGraphicStyle: String, CaseIterable, Identifiable, Codable, Sendable {
|
||
case vanster
|
||
case california
|
||
|
||
var id: String { rawValue }
|
||
|
||
var title: String {
|
||
switch self {
|
||
case .vanster: return "Vanster"
|
||
case .california: return "California"
|
||
}
|
||
}
|
||
|
||
var sideImageName: String {
|
||
switch self {
|
||
case .vanster: return "VansterSide"
|
||
case .california: return "CaliforniaSide"
|
||
}
|
||
}
|
||
|
||
var rearImageName: String {
|
||
switch self {
|
||
case .vanster: return "VansterRear"
|
||
case .california: return "CaliforniaRear"
|
||
}
|
||
}
|
||
|
||
/// Seitenverhältnis der jeweiligen Bilder – ohne das würde eine Grafik
|
||
/// mit anderen Proportionen in der gemeinsamen Bildhülle verzerrt oder
|
||
/// ungewollt verkleinert erscheinen.
|
||
var sideAspect: Double {
|
||
switch self {
|
||
case .vanster: return VehicleTilt.sideAspect
|
||
case .california: return 1212.0 / 790.0
|
||
}
|
||
}
|
||
|
||
var rearAspect: Double {
|
||
switch self {
|
||
case .vanster, .california: return VehicleTilt.rearAspect
|
||
}
|
||
}
|
||
}
|