[英]How to hide Button on Click in SwiftUI
我想在单击一个按钮后隐藏它并显示另一个按钮,反之亦然。
默认情况下,锁定按钮应该是第一个显示的按钮。 点击它后,只有第二个解锁按钮应该显示在同一个 position 中。
Button { //lock button
app.statusBar?.stop()
} label: {
Image(systemName: "lock")
}
Button { //unlock button
app.statusBar?.start()
} label: {
Image(systemName: "lock.open")
}
}
这是针对 macOS 应用程序的。
为什么不只是一个按钮?
@State private var isLocked = false
...
Button { //lock button
isLocked.toggle()
if isLocked {
app.statusBar?.stop()
} else {
app.statusBar?.start()
}
} label: {
Image(systemName: isLocked ? "lock" : "lock.open")
}
如果你真的想要两个按钮,你可以用opacity
修改器隐藏一个
Button {
...
}
.opacity(isLocked ? 1.0 : 0.0)
您需要通过@State
变量设置条件。 当变量在真到假之间切换时,将相应地显示正确的按钮。
这是一个例子:
struct Example: View {
@State private var free = true
var body: some View {
if free {
Button { //lock button
app.statusBar?.stop()
free = false
} label: {
Image(systemName: "lock")
}
} else {
Button { //unlock button
app.statusBar?.start()
free = true
} label: {
Image(systemName: "lock.open")
}
}
}
}
你可以使用 .hidden() 修饰符
Button {
...
}
.hidden()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.