Почему элементы моего списка не обнаруживают пользовательский ввод, пока список не перетаскивается? - PullRequest
1 голос
/ 07 января 2020

Мои элементы списка не могут быть затронуты, пока я не коснусь и не перетяну весь список, затем я могу коснуться их, и они смогут получать пользовательский ввод. Это почти так, как будто список должен обновляться при появлении или что-то, возможно, список обновляется, когда я перетаскиваю его, тогда ячейки могут получать сенсорный ввод? Пожалуйста, помогите мне решить эту проблему.

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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...