Mercurial > public > geoquiz
comparison GeoQuiz/GuessTheFlagView.swift @ 27:3f4b366d476d
add flag layout settings
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Thu, 10 Nov 2022 09:26:48 +0100 |
parents | 425078c01194 |
children | 6d574bd1644f |
comparison
equal
deleted
inserted
replaced
26:425078c01194 | 27:3f4b366d476d |
---|---|
5 // Created by Dennis Concepción Martín on 20/9/22. | 5 // Created by Dennis Concepción Martín on 20/9/22. |
6 // | 6 // |
7 | 7 |
8 import SwiftUI | 8 import SwiftUI |
9 | 9 |
10 struct GuessTheFlagView: View { | 10 struct GuessTheFlagView: View, GameView { |
11 @ObservedObject var userController: UserController | |
12 | |
11 @StateObject var gameController = CountryGameController() | 13 @StateObject var gameController = CountryGameController() |
12 | 14 |
13 @Environment(\.managedObjectContext) var moc | 15 @Environment(\.managedObjectContext) var moc |
14 | 16 |
15 var body: some View { | 17 var body: some View { |
59 UIImage(contentsOfFile: path) doesn't cache the image | 61 UIImage(contentsOfFile: path) doesn't cache the image |
60 | 62 |
61 THE SOLUTION: | 63 THE SOLUTION: |
62 Using `UIImage(contentsOfFile: path)` images aren't cached. | 64 Using `UIImage(contentsOfFile: path)` images aren't cached. |
63 */ | 65 */ |
64 | 66 |
65 let flag = gameController.data[countryName]!.flag | 67 let flagPath = getFlagPath(forName: gameController.data[countryName]!.flag) |
66 let flagPath = Bundle.main.path(forResource: flag, ofType: "png")! | 68 Layout.showFlag(in: flagPath, geo: geo, userController) |
67 | |
68 RoundedRectangle(cornerRadius: 20) | |
69 .foregroundColor(.white.opacity(0.5)) | |
70 .frame(width: geo.size.height * 0.3, height: geo.size.height * 0.15) | |
71 .overlay( | |
72 Image(uiImage: UIImage(contentsOfFile: flagPath)!) | |
73 .resizable() | |
74 .scaledToFit() | |
75 .cornerRadius(20) | |
76 .shadow(radius: 10) | |
77 .padding() | |
78 ) | |
79 } | 69 } |
80 } | 70 } |
81 } | 71 } |
82 | 72 |
83 Spacer() | 73 Spacer() |
90 } | 80 } |
91 } | 81 } |
92 | 82 |
93 struct GuessTheFlagView_Previews: PreviewProvider { | 83 struct GuessTheFlagView_Previews: PreviewProvider { |
94 static var previews: some View { | 84 static var previews: some View { |
95 GuessTheFlagView() | 85 GuessTheFlagView(userController: UserController()) |
96 } | 86 } |
97 } | 87 } |