Mercurial > public > geoquiz
comparison GeoQuiz/GuessTheFlagView-ViewModel.swift @ 27:3f4b366d476d
add flag layout settings
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Thu, 10 Nov 2022 09:26:48 +0100 |
parents | |
children | 9d6dd0e59c22 |
comparison
equal
deleted
inserted
replaced
26:425078c01194 | 27:3f4b366d476d |
---|---|
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 { | |
16 switch userController.data.guessTheFlagShape { | |
17 case .respectAspectRatio: | |
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() | |
47 .frame(width: geo.size.height * 0.3, height: geo.size.height * 0.15) | |
48 .clipShape(RoundedRectangle(cornerRadius: 20)) | |
49 .shadow(radius: 10) | |
50 ) | |
51 } | |
52 } | |
53 } | |
54 } |