微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在视图中的单个 VStack 中添加多个按钮Xcode12、SwiftUI

如何解决如何在视图中的单个 VStack 中添加多个按钮Xcode12、SwiftUI

我在单个 vstack 中有多个按钮时遇到问题。我收到错误:位置的额外参数......下面是我的代码。此代码位于查看文件夹中,我将 Xcode12 与 SwiftUI 一起使用

确切的错误消息:调用中位置 #11、#12、#13 的额外参数

import SwiftUI

struct HomeView: View {
    
    @Binding var page: Pages
    
    var drink = Drink.AllDrinks
    
    var body: some View {
        
        vstack {
            drink[0].image
                .resizable()
                .frame(width:80,height: 80)
            Text(drink[0].name)
            Button(action: {page = Pages.Home}) {
                OrderButtonContent()
            }
            Spacer()
                .frame(height: 35)
            
            drink[1].image
                .resizable()
                .frame(width: 80,height: 80)
            Text(drink[1].name)
            Button(action: {page = Pages.Home}) {
                OrderButtonContent
            }
            
            drink[2].image
                .resizable()
                .frame(width: 80,height: 80)
            Text(drink[2].name)
            Button(action: {page = Pages.Home}) {
                OrderButtonContent
            }
            
            drink[7].image
                .resizable()
                .frame(width: 80,height: 80)
            Text(drink[7].name)
            Button(action: {page = Pages.Home}) {
                OrderButtonContent
            }
            
            
        }
    }
}

struct HomeView_Previews: PreviewProvider {
    static var previews: some View {
        HomeView(page: .constant(Pages.Home))
    }
}

struct OrderButtonContent: View {
    var body: some View {
        Text("Order")
            .font(.headline)
            .foregroundColor(.white)
            .padding()
            .frame(width: 80,height: 30)
            .background(Color.blue)
            .cornerRadius(15.0)
    }
}

解决方法

太简单了,让我们看看错误是什么:Exact error message: Extra arguments at positions #11,#12,#13 in call

它说额外的论据! SwiftUI 中参数的最大数量为 10,我们应该为此使用 Group,如下所示:

struct HomeView: View {
    
    @Binding var page: Pages
    
    var drink = Drink.AllDrinks
    
    var body: some View {
        
        VStack {
            
            Group {   // <<: Here!
                
                drink[0].image
                    .resizable()
                    .frame(width:80,height: 80)
                
                Text(drink[0].name)
                
                Button(action: {page = Pages.Home}) {
                    OrderButtonContent()
                }
                Spacer()
                    
                    .frame(height: 35)
                
                drink[1].image
                    .resizable()
                    .frame(width: 80,height: 80)
                Text(drink[1].name)
                
                Button(action: {page = Pages.Home}) {
                    OrderButtonContent()
                }
                
            }
            
            Group {   // <<: Here!
                
                drink[2].image
                    .resizable()
                    .frame(width: 80,height: 80)
                Text(drink[2].name)
                Button(action: {page = Pages.Home}) {
                    OrderButtonContent()
                }
                
                drink[7].image
                    .resizable()
                    .frame(width: 80,height: 80)
                Text(drink[7].name)
                Button(action: {page = Pages.Home}) {
                    OrderButtonContent()
                }
                
            }
            

            
            
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。