Я новичок в SwiftUI и в режиме обучения.
Я работаю над кодом, который позволит пользователю выбирать дату из календаря. Каждый день в календаре представлен текстовым полем. Мне бы хотелось, чтобы цвет фона выбранного дня изменялся при нажатии. Я могу изменить фон при первой загрузке представления, но я не смог найти способ изменить его при касании. Спасибо за помощь.
import SwiftUI
var selectDay: Int = 0
struct ContentView: View {
@State var strDays = ["01","02","03","04","05","06","07"]
var body: some View {
VStack (spacing:10) {
HStack (spacing: 2) {
TextField("", text: $strDays[0])
.modifier(dayModifier())
.background(getBackgroundColor(thisDay: 0))
.onTapGesture {
self.selectDate(selection: 0)
}
TextField("", text: $strDays[1])
.modifier(dayModifier())
.background(getBackgroundColor(thisDay: 1))
.onTapGesture {
self.selectDate(selection: 1)
}
}
}
}
func selectDate(selection: Int) {
strDays[selection] = "99"
selectDay = selection
}
func getBackgroundColor(thisDay: Int) -> Color {
var backgroundColor = Color.clear
if selectDay == thisDay {
backgroundColor = Color.blue
}
return backgroundColor
}
struct dayModifier: ViewModifier {
func body(content: Content) -> some View {
return content
.frame(width: 50.0, height: 50)
.multilineTextAlignment(.center)
.foregroundColor(.primary)
.border(Color.primary, width: /*@START_MENU_TOKEN@*/1/*@END_MENU_TOKEN@*/)
.disabled(true)
}
}