首页 > 解决方案 > “调用中的额外参数” Spacer()

问题描述

我对 swiftui 很陌生,出于学习的原因正在制作一个简单的游戏。我不知道为什么会出现这个错误,因为我做了几行基本相同的事情。如果您想自己检查代码,只需使用一些随机图像。我不能发布这篇文章,因为它有很多代码。它告诉我必须添加更多文本,这就是我现在正在做的事情,您不必阅读此内容。

import SwiftUI
struct ContentView: View {
    var body: some View {
        ZStack{
            Image("background")
                .ignoresSafeArea()         
            VStack{
                Spacer()
                Image("logo")
                Spacer()
                HStack {
                    Spacer()
                    Image("card3")
                    Spacer()
                    Image("card4")
                    Spacer()
                        }
                Spacer()
                Image("dealbutton")
                Spacer()
                HStack{
                    Spacer()
                    Text("Player")
                    Spacer()
                    Text("CPU")
                    Spacer()
                }
                .font(/*@START_MENU_TOKEN@*/.title/*@END_MENU_TOKEN@*/)
                .foregroundColor(.white)
                Spacer()
                HStack{
                    Spacer()
                    Text("0")
                    Spacer()
                    Text("0")
                    Spacer()
                }
                Spacer() //here is the error             
            }
    }
    }
    }
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

标签: swiftui

解决方案


注意 Spacer() 是一个视图,因此您超出了另一个视图中允许的视图数 (10)。尝试一些变体,或使用 Group {...}:

struct ContentView: View {
    
    var cardView: some View {
        Group {
            Spacer()
            HStack {
                Spacer()
                Image("card3")
                Spacer()
                Image("card4")
                Spacer()
            }
            Spacer()
        }
    }
    
    var textview: some View {
        Group {
            Spacer()
            HStack{
                Spacer()
                Text("0")
                Spacer()
                Text("0")
                Spacer()
            }
            Spacer()
        }
    }
    
    var devView: some View {
        Group {
            Spacer()
            HStack{
                Spacer()
                Text("Player")
                Spacer()
                Text("CPU")
                Spacer()
            }
            Spacer()
        }
    }
    
    var body: some View {
        ZStack{
            Image("background")
                .ignoresSafeArea()
            VStack{
                Spacer()
                Image("logo")
                Spacer()
                cardView
                Image("dealbutton")
                devView
                    .font(.title)
                    .foregroundColor(.white)
                textview
                Spacer()
            }
        }
    }
}

推荐阅读