我试图在选择按钮时更改按钮的颜色。当我按下按钮时没有任何变化。似乎 .onTapGesture 不适用于自定义视图。
我尝试使用 Buttons 而不是 .onTapGesture,但它也不起作用。.contentShape 不起作用。我也尝试过使用列表,效果很好。但我认为有更好的方法。
import SwiftUI
struct UserSettings: View {
@State private var selectedIndex: Int = 0
var body: some View {
VStack {
HStack(spacing: 0) {
ForEach(0..<3) { subIndex in
let pat = customPatterns1[subIndex]
PatternOptionView(pat: pat, isSelected: subIndex == selectedIndex)
.contentShape(Rectangle())
.onTapGesture(perform: {
selectedIndex = subIndex
})
}
}
}
}
}
struct UserSettings_Previews: PreviewProvider {
static var previews: some View {
UserSettings()
}
}
Run Code Online (Sandbox Code Playgroud)
我的自定义视图:
import SwiftUI
struct PatternOptionView: View {
var pat: PatternView …Run Code Online (Sandbox Code Playgroud) swiftui ×1