Le Image(_ , bundle: _)
de SwiftUI recherche la ressource d'image dans le catalogue des ressources correspondant du bundle. Dans votre cas, l'image est simplement incorporée en tant que fichier normal, donc vous devez la trouver et la charger en tant que fichier. Image
lui-même ne peut pas le faire, donc il devrait être construit avec UIImage
qui a cette possibilité.
Donc, en supposant que votre Game.bundle
est dans le sous-dossier PlugIns
du bundle principal (sinon - corrigez simplement la construction du chemin correspondant ci-dessous), voici une approche possible.
Testé avec Xcode 12 / iOS 14
struct ContentView: View {
var body: some View {
Image(uiImage: gameImage(name: "test") ?? UIImage())
}
func gameImage(name: String, type: String = "png") -> UIImage? {
guard let plugins = Bundle.main.builtInPlugInsPath,
let bundle = Bundle(url: URL(fileURLWithPath:
plugins).appendingPathComponent("Game.bundle")),
let path = bundle.path(forResource: name, ofType: type)
else { return nil }
return UIImage(contentsOfFile: path)
}
}
0 votes
La capture d'écran fournie ne montre pas l'image "skill2" dans Game.bundle. Êtes-vous sûr qu'elle est là?
0 votes
Oui j'ai mis à jour cette question
1 votes
Que ne fonctionne pas exactement?