首页 > 解决方案 > 在swift UI中点击按钮时如何更改背景颜色和图像?

问题描述

当我点击该点时,我想更改背景颜色并为选择点添加一个好的按钮图像。我怎样才能做到这一点 ?我确实知道如何更改背景颜色,但我不确定如何添加确认图像。我应该使用 ZStack 还是有其他方法可以这样做?

在此处输入图像描述

在此处输入图像描述

HStack {
                            Button(action: {
                                self.tap1.toggle()
                                
                                
                            }) {
                                Text("")
                                .padding(.horizontal, 10)
                                .padding(.vertical, 5)
                                .background((self.tap1) ? Color(.gray) : Color(.blue)
                                .cornerRadius(4)
                                .padding(.leading, 40)
                            }
                            
                            Spacer()
                            
                            Text("Diyabet")
                                .font(.system(size: 20, weight: .regular, design: .rounded))
                                .padding(.trailing, 200)
                                Spacer()
                        }.padding(.bottom, 20)
                        
                        
                        HStack {
                            Button(action: {
                                self.tap2.toggle()
                               
                                
                            }) {
                               Text("")
                                .padding(.horizontal, 10)
                                .padding(.vertical, 5)
                                .background(self.tap2  ? Color(.gray) : Color(.blue)
                                .cornerRadius(4)
                                .padding(.leading, 40)
                            }
                            
                            Spacer()
                            
                            Text("Yüksek Tansiyon")
                                .font(.system(size: 20, weight: .regular, design: .rounded))
                                .padding(.trailing, 130)
                            Spacer()
                        }.padding(.bottom, 20)
                    
                        HStack {
                            Button(action: {
                                self.tap3.toggle()
                                
                            }) {
                                Text("")
                                .padding(.horizontal, 10)
                                .padding(.vertical, 5)
                                .background(self.tap3  ? Color(.gray) : Color(.blue)
                                .cornerRadius(4)
                                .padding(.leading, 40)
                            }
                            
                            Spacer()
                            
                            Text("Kalp ve Damar Hastalıkları")
                                .font(.system(size: 20, weight: .regular, design: .rounded))
                                .padding(.trailing, 45)
                            Spacer()
                        }.padding(.bottom, 20)

标签: swiftswiftui

解决方案


@State private var pressed = false

var body: some View {
    ZStack {
        Button(action: {
            self.pressed.toggle()
        }) {
            ZStack {
                Rectangle().fill(self.pressed ? Color.blue : Color.gray)
                if self.pressed {
                    Image(systemName: "checkmark")
                }
            }
        }
    }
}

推荐阅读