未点击 SwiftUI 按钮

Posted

技术标签:

【中文标题】未点击 SwiftUI 按钮【英文标题】:SwiftUI Button not being tapped 【发布时间】:2020-07-02 16:18:55 【问题描述】:

我在 swiftui 中的 geometryReader 内的 Vstack 内的 ZStack 内的 Vstack 内的 Hstack 内嵌入了一个按钮,该按钮不会被点击。我在里面放了一个打印语句,每当我尝试点击按钮时,打印语句都不会打印。有谁可以帮我离开这里吗?谢谢。这是我的代码:

struct DetailedGroupView: View 
    @State var actrualImage: Image?
    @State var title = "title"
    @State var description = "description"
    @State var sgName = "sgName"
    @State var membersCount = 0
    @Environment(\.presentationMode) var presentationMode
    var body: some View 
        GeometryReader geo in
            VStack
                ZStack
                    
                    (self.actrualImage ?? Image("earthPlaceholder"))
                        .resizable()
                        .aspectRatio(contentMode: .fill)
                    VStack
                        
                        
                        Spacer()
                        HStack

                            //This button doesn't work
                            Button(action: 
                                print("Button Tapped")   

                                self.presentationMode.wrappedValue.dismiss()
                            , label: 
                                Image(systemName: "chevron.left").foregroundColor(.white)
                            ).padding()
                            
                            
                            Text(self.title)
                                .font(.largeTitle)
                                .fontWeight(.bold)
                                .multilineTextAlignment(.leading)
                                .foregroundColor(.white)
                                .padding()
                                .minimumScaleFactor(0.5)
                            Spacer()
                        
                        HStack
                            Text(self.description)
                                .font(.custom("Open Sans", size: 18))
                                .fontWeight(.ultraLight)
                                .multilineTextAlignment(.leading)
                                .foregroundColor(.white)
                                .padding()
                            Spacer()
                        
                        Spacer()
                        HStack
                            
                            
                            Image(systemName: "person.2.fill").foregroundColor(.white).padding(.leading)
                            Text("\(self.membersCount)")
                                .font(.custom("Open Sans", size: 12))
                                .fontWeight(.semibold)
                                .foregroundColor(.white)
                            Spacer()
                            Text(self.sgName)
                                .font(.custom("Open Sans", size: 12))
                                .fontWeight(.semibold)
                                .foregroundColor(.white)
                                .padding()
                        .padding()
                        
                    .frame(width: geo.size.width, height: 294)
                .frame(width: geo.size.width, height: 294)
                    .clipShape(RoundedRectangle(cornerRadius: 12))
                    .edgesIgnoringSafeArea(.top)
                Spacer()
                ScrollView(showsIndicators: false)
                    VStack
                        
                        
                        Spacer()
                        
                    .onAppear
                        self.actrualImage = Image("globePlaceholder")

                    
                
            
            
        .navigationBarBackButtonHidden(true)
    

【问题讨论】:

【参考方案1】:

刚刚在 XCode 11.5 和 12.0 上测试了相同的代码,并且按钮工作正常...确保在模拟器上测试它而不是在预览/画布上

【讨论】:

以上是关于未点击 SwiftUI 按钮的主要内容,如果未能解决你的问题,请参考以下文章

未显示来自 JSON 的 SwiftUI Picker 数据

点击按钮时SwiftUI获取用户的位置

SwiftUI:显示重复按钮且未触发操作的催化剂警报

从按钮操作中更改时未触发 SwiftUI 绑定

SwiftUI - 点击按钮更改 VStack 的背景颜色

SwiftUI 按钮点击重置 SpriteKit 动画 - 这是一个错误吗?