[英]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.