1

SwiftUI を使用して次のグリッド レイアウトを実現しようとしていますが、最適なアプローチについてはよくわかりません。

ここに画像の説明を入力

私のコードは以下のとおりであり、私が望むものを完全に取得していません。また、ネストされたスタックが多数あるのはハッキーに思えます

VStack {
            
            VStack {
                
                HStack {
                    
                    VStack {
                        
                        Text("Text Here")
                        Text("336.851")
                        
                    }
                    .padding(20)
                    .background(ColorManager.orange)
                    .cornerRadius(10)
                    
                    VStack {
                        
                        Text("Text Here")
                        Text("336.851")
                        
                    }
                    .padding(20)
                    .background(ColorManager.red)
                    .cornerRadius(10)
                    
                }
                
                HStack {
                    
                    VStack {
                        
                        Text("Text Here")
                        Text("336.851")
                        
                    }
                    .padding(20)
                    .background(ColorManager.green)
                    .cornerRadius(10)
                    
                    VStack {

                        Text("Text Here")
                        Text("336.851")

                    }
                    .padding(20)
                    .background(ColorManager.blue)
                    .cornerRadius(10)

                    VStack {

                        Text("Text Here")
                        Text("336.851")

                    }
                    .padding(20)
                    .background(ColorManager.purpleLight)
                    .cornerRadius(10)
                    
                }
                
                
            }
            
        }

私のコードでは以下の結果が得られますが、ボックスを画面の半分と 3 分の 1 に最大化する方法がわかりません。また、ネストされたスタックで取ったアプローチは正しいですか?

ここに画像の説明を入力

4

2 に答える 2