Youtube like/dislike 按钮在 SwiftUI 中的功能
Youtube like/dislike buttons function in SwiftUI
首先,我是Swift和SwiftUI的完全初学者。
我正在尝试创建类似于 youtube like/dislike 功能的按钮或切换功能。
我可以创建按钮,但我很纠结,如何在按钮 B 打开时关闭按钮 A,反之亦然。同时在单击时还保留了单独的 on/off 功能。
我看到有人回答了类似的问题,但 SwiftUI
没有
提前致谢!
struct ContentView: View{
@State var isOnGreen = false
@State var isOnRed = false
var body: some View {
HStack{
VStack {
Toggle(isOn: $isOnRed, label: {
Image (systemName: "arrowtriangle.down")
})
.toggleStyle(.button)
.tint(.red)
VStack {
Toggle(isOn: $isOnGreen, label: {
Image (systemName: "arrowtriangle.up")
})
.toggleStyle(.button)
.tint(.green)
}
向您的 HStack
添加一个修饰符,用于监控 isOnRed
或 isOnGreen
中的变化:
var body: some View {
HStack {
// ...
}
.onChange(of: isOnGreen) { val in
if val { isOnRed = false }
}
.onChange(of: isOnRed) { val in
if val { isOnGreen = false }
}
}
首先,我是Swift和SwiftUI的完全初学者。
我正在尝试创建类似于 youtube like/dislike 功能的按钮或切换功能。
我可以创建按钮,但我很纠结,如何在按钮 B 打开时关闭按钮 A,反之亦然。同时在单击时还保留了单独的 on/off 功能。 我看到有人回答了类似的问题,但 SwiftUI
没有提前致谢!
struct ContentView: View{
@State var isOnGreen = false
@State var isOnRed = false
var body: some View {
HStack{
VStack {
Toggle(isOn: $isOnRed, label: {
Image (systemName: "arrowtriangle.down")
})
.toggleStyle(.button)
.tint(.red)
VStack {
Toggle(isOn: $isOnGreen, label: {
Image (systemName: "arrowtriangle.up")
})
.toggleStyle(.button)
.tint(.green)
}
向您的 HStack
添加一个修饰符,用于监控 isOnRed
或 isOnGreen
中的变化:
var body: some View {
HStack {
// ...
}
.onChange(of: isOnGreen) { val in
if val { isOnRed = false }
}
.onChange(of: isOnRed) { val in
if val { isOnGreen = false }
}
}