我正在构建测验应用程序。一个问题; 3个答案。答案在单独的按钮中。
单击时,我设法更改了按钮的颜色。例如,从灰色到绿色/红色。但是在单击之后,该按钮将恢复为灰色。
单击后是否可以保留更改的颜色,例如HTML中的超链接?
这是样式代码:
struct MyButtonStyle: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.padding(20)
.foregroundColor(.white)
.background(configuration.isPressed ? Color.red : Color.gray)
.cornerRadius(10.0)
您可以这样声明您的ButtonStyle:
public struct SelectedButtonStyle: ButtonStyle {
@Binding var isSelected: Bool
public func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.padding(20)
.foregroundColor(.white)
.background(isSelected ? Color.red : Color.gray)
.cornerRadius(10.0)
}
}
然后在视图中,具有选择状态:
@State var isSelected = false
然后您可以像这样声明您的按钮以使其一次被选中并永远保持选中状态:
Button("Tap") {
self.isSelected = true
} .buttonStyle(SelectedButtonStyle(isSelected: $isSelected))
或者您也可以像这样声明它也可以取消选择它:
Button("Tap") {
self.isSelected.toggle()
} .buttonStyle(SelectedButtonStyle(isSelected: $isSelected))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句