我想在單擊一個按鈕后隱藏它并顯示另一個按鈕,反之亦然。
默認情況下,鎖定按鈕應該是第一個顯示的按鈕。單擊它后,只有第二個解鎖按鈕應顯示在同一位置。
Button { //lock button
app.statusBar?.stop()
} label: {
Image(systemName: "lock")
}
Button { //unlock button
app.statusBar?.start()
} label: {
Image(systemName: "lock.open")
}
}
這是針對 macOS 應用程式的。
uj5u.com熱心網友回復:
為什么不只是一個按鈕?
@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)
uj5u.com熱心網友回復:
您需要通過@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")
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/438929.html
