Mercurial > public > geoquiz
annotate GeoQuiz/GuessTheFlagView-ViewModel.swift @ 33:6d574bd1644f
refactor controllers
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Sat, 12 Nov 2022 11:18:30 +0100 |
parents | 9d6dd0e59c22 |
children |
rev | line source |
---|---|
27 | 1 // |
2 // GuessTheFlagView-ViewModel.swift | |
3 // GeoQuiz | |
4 // | |
5 // Created by Dennis Concepción Martín on 9/11/22. | |
6 // | |
7 | |
8 import Foundation | |
9 import SwiftUI | |
10 | |
11 extension GuessTheFlagView { | |
12 | |
13 class Layout { | |
14 | |
15 static func showFlag(in flagPath: String, geo: GeometryProxy, _ userController: UserController) -> some View { | |
31
9d6dd0e59c22
remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents:
27
diff
changeset
|
16 switch userController.data.guessTheFlagAspectRatio { |
9d6dd0e59c22
remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents:
27
diff
changeset
|
17 case .original: |
27 | 18 return AnyView( |
19 RoundedRectangle(cornerRadius: 20) | |
20 .foregroundColor(.white.opacity(0.5)) | |
21 .frame(width: geo.size.height * 0.3, height: geo.size.height * 0.15) | |
22 .overlay( | |
23 Image(uiImage: UIImage(contentsOfFile: flagPath)!) | |
24 .resizable() | |
25 .scaledToFit() | |
26 .cornerRadius(20) | |
27 .shadow(radius: 10) | |
28 .padding() | |
29 ) | |
30 ) | |
31 case .circular: | |
32 return AnyView( | |
33 Image(uiImage: UIImage(contentsOfFile: flagPath)!) | |
34 .renderingMode(.original) | |
35 .resizable() | |
36 .scaledToFit() | |
37 .frame(height: geo.size.height * 0.16) | |
38 .clipShape(Circle()) | |
39 .shadow(radius: 10) | |
40 ) | |
41 case .rectangular: | |
42 return AnyView( | |
43 Image(uiImage: UIImage(contentsOfFile: flagPath)!) | |
44 .renderingMode(.original) | |
45 .resizable() | |
46 .scaledToFill() | |
31
9d6dd0e59c22
remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents:
27
diff
changeset
|
47 .frame(width: geo.size.height * 0.25, height: geo.size.height * 0.14) |
27 | 48 .clipShape(RoundedRectangle(cornerRadius: 20)) |
49 .shadow(radius: 10) | |
50 ) | |
51 } | |
52 } | |
53 } | |
54 } |