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 }