Мои элементы списка не могут быть затронуты, пока я не коснусь и не перетяну весь список, затем я могу коснуться их, и они смогут получать пользовательский ввод. Это почти так, как будто список должен обновляться при появлении или что-то, возможно, список обновляется, когда я перетаскиваю его, тогда ячейки могут получать сенсорный ввод? Пожалуйста, помогите мне решить эту проблему.
struct ClientList: View {
@FetchRequest
var clients: FetchedResults<Client>
@State private var selectedClient: UUID?
@EnvironmentObject var settings: UserSettings
@ObservedObject var model = Model()
init(predicate: NSPredicate?) {
let request: NSFetchRequest<Client> = Client.fetchRequest()
request.sortDescriptors = []
if let predicate = predicate {
request.predicate = predicate
}else{
request.fetchLimit = 50
}
_clients = FetchRequest<Client>(fetchRequest: request)
}
var body: some View {
List{
ForEach(clients, id: \.self) { client in
VStack(alignment: .center) {
HStack{
Text("\(client.firstName ?? "") " + "\(client.lastName ?? "")")
.font(.system(size: 17))
.fontWeight(.medium)
.foregroundColor(self.selectedClient == client.id ? Color.white:Color.init(hex: "47535B"))
.multilineTextAlignment(.leading)
.padding(.leading)
Spacer()
Text(client.clientID ?? "")
.font(.system(size: 17))
.fontWeight(.medium)
.foregroundColor(self.selectedClient == client.id ? Color.white:Color.init(hex: "47535B"))
.multilineTextAlignment(.leading)
.padding(.trailing)
}
.padding(.vertical, 10.0)
}
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 75.0)
.background(self.selectedClient == client.id ? Color.init(hex: "666699"):Color.init(hex: "F6F6F6"))
.cornerRadius(7.0)
.onTapGesture {
withAnimation(.spring()){
self.settings.viewingProfile = true
}
self.selectedClient = client.id!
self.settings.client = client
self.settings.clientFirstName = client.firstName!
self.settings.clientLastName = client.lastName!
self.settings.clientDob = client.dob!
self.settings.clientAge = client.age!
self.settings.clientID = client.clientID!
self.settings.leftDevice = client.leftDevice!
self.settings.rightDevice = client.rightDevice!
self.settings.profileEdited = false
}
}
}.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
.padding(.bottom, 27.0)
.padding(.horizontal, 10.0)
}
}