@@ -34,28 +34,26 @@ struct ImagenScreen: View {
34
34
35
35
var body : some View {
36
36
ZStack {
37
- VStack {
38
- InputField ( " Enter a prompt to generate an image " , text: $viewModel. userInput) {
39
- Image (
40
- systemName: viewModel. inProgress ? " stop.circle.fill " : " paperplane.circle.fill "
41
- )
42
- . font ( . title)
43
- }
44
- . focused ( $focusedField, equals: . message)
45
- . onSubmit { sendOrStop ( ) }
37
+ ScrollView {
38
+ VStack {
39
+ InputField ( " Enter a prompt to generate an image " , text: $viewModel. userInput) {
40
+ Image (
41
+ systemName: viewModel. inProgress ? " stop.circle.fill " : " paperplane.circle.fill "
42
+ )
43
+ . font ( . title)
44
+ }
45
+ . focused ( $focusedField, equals: . message)
46
+ . onSubmit { sendOrStop ( ) }
46
47
47
- ScrollView {
48
48
let spacing : CGFloat = 10
49
49
LazyVGrid ( columns: [
50
- GridItem ( . fixed ( UIScreen . main . bounds . width / 2 - spacing ) , spacing: spacing) ,
51
- GridItem ( . fixed ( UIScreen . main . bounds . width / 2 - spacing ) , spacing: spacing) ,
50
+ GridItem ( . flexible ( ) , spacing: spacing) ,
51
+ GridItem ( . flexible ( ) , spacing: spacing) ,
52
52
] , spacing: spacing) {
53
53
ForEach ( viewModel. images, id: \. self) { image in
54
54
Image ( uiImage: image)
55
55
. resizable ( )
56
- . aspectRatio ( contentMode: . fill)
57
- . frame ( width: UIScreen . main. bounds. width / 2 - spacing,
58
- height: UIScreen . main. bounds. width / 2 - spacing)
56
+ . aspectRatio ( 1 , contentMode: . fill)
59
57
. cornerRadius ( 12 )
60
58
. clipped ( )
61
59
}
@@ -95,18 +93,23 @@ struct ImagenScreen: View {
95
93
struct ProgressOverlay : View {
96
94
var body : some View {
97
95
ZStack {
98
- RoundedRectangle ( cornerRadius: 16 )
99
- . fill ( Material . ultraThinMaterial)
100
- . frame ( width: 120 , height: 100 )
101
- . shadow ( radius: 8 )
96
+ Color . black. opacity ( 0.3 )
97
+ . ignoresSafeArea ( )
98
+
99
+ ZStack {
100
+ RoundedRectangle ( cornerRadius: 16 )
101
+ . fill ( Material . ultraThinMaterial)
102
+ . frame ( width: 120 , height: 100 )
103
+ . shadow ( radius: 8 )
102
104
103
- VStack ( spacing: 12 ) {
104
- ProgressView ( )
105
- . scaleEffect ( 1.5 )
105
+ VStack ( spacing: 12 ) {
106
+ ProgressView ( )
107
+ . scaleEffect ( 1.5 )
106
108
107
- Text ( " Loading... " )
108
- . font ( . subheadline)
109
- . foregroundColor ( . secondary)
109
+ Text ( " Loading... " )
110
+ . font ( . subheadline)
111
+ . foregroundColor ( . secondary)
112
+ }
110
113
}
111
114
}
112
115
}
0 commit comments