swift - 在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)
解决方案
@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")
}
}
}
}
}
推荐阅读
- wordpress - 在服务器站点(Wordpress)上将主页显示设置为静态时屏幕变白
- c# - 如何在 NavigationView 底部绘制菜单?
- apache-storm - 等待 submitToplogy 完成
- javascript - 关闭 node.js websocket 连接的用户友好方式
- sharepoint - 在 SharePoint 文档库中更改文件夹内部名称
- vba - 在 VBA 中自动化列表框值
- php - 是否可以使用 PHP 套接字扩展实现 SSL (wss://)?
- .net - 没有剩余的逻辑空间来创建更多的用户字符串。[MVC预编译]
- sql-server - Sequelize.Close 一旦程序完成读取所有数据
- javascript - Jquery 缩放插件不瞄准和缩放