Mercurial > public > geoquiz
annotate GeoQuiz/Components/CityMap.swift @ 21:b145c408f791
refactor code
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Tue, 25 Oct 2022 15:30:01 +0200 |
parents | e281791e0494 |
children |
rev | line source |
---|---|
6 | 1 // |
20 | 2 // CityMap.swift |
6 | 3 // GeoQuiz |
4 // | |
7 | 5 // Created by Dennis Concepción Martín on 4/10/22. |
6 | 6 // |
7 | |
8 import SwiftUI | |
8 | 9 import MapKit |
6 | 10 |
11 struct CityMap: View { | |
19 | 12 @ObservedObject var game: CityGameController |
13 | |
14 @StateObject var mapController: MapController | |
15 | |
16 init(game: CityGameController) { | |
17 self.game = game | |
18 self._mapController = StateObject(wrappedValue: MapController()) | |
19 } | |
8 | 20 |
6 | 21 var body: some View { |
8 | 22 VStack { |
19 | 23 if let mapImage = mapController.image { |
7 | 24 Image(uiImage: mapImage) |
25 .resizable() | |
26 .scaledToFit() | |
10
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
27 .clipShape(Circle()) |
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
28 .overlay { |
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
29 Circle() |
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
30 .strokeBorder(.white, lineWidth: 4) |
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
31 } |
7 | 32 .shadow(radius: 10) |
33 } else { | |
34 ProgressView() | |
35 } | |
36 } | |
19 | 37 .onChange(of: game.correctAnswer.value) { _ in |
38 mapController.getMapImage(lat: game.correctAnswer.value.lat, lon: game.correctAnswer.value.lon) | |
39 } | |
40 | |
41 .onAppear { | |
42 mapController.getMapImage(lat: game.correctAnswer.value.lat, lon: game.correctAnswer.value.lon) | |
8 | 43 } |
6 | 44 } |
45 } | |
46 | |
10
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
47 struct CityMap_Previews: PreviewProvider { |
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
48 static var previews: some View { |
19 | 49 CityMap(game: CityGameController()) |
10
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
50 } |
a793f33f05fb
refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents:
8
diff
changeset
|
51 } |