Swiftui 为什么我的列表项在拖动列表之前不检测用户输入?

Swiftui 为什么我的列表项在拖动列表之前不检测用户输入?,swiftui,Swiftui,在我触摸并拖动整个列表之前,无法点击我的列表项,然后我可以点击它们,它们可以接收用户输入。这几乎就好像列表需要在出现或出现时更新一样,也许当我拖动列表时列表会更新,那么单元格可以接收触摸输入吗?请帮我解决这个问题 struct ClientList: View { @FetchRequest var clients: FetchedResults<Client> @State private var selectedClient: UUID? @E

在我触摸并拖动整个列表之前,无法点击我的列表项,然后我可以点击它们,它们可以接收用户输入。这几乎就好像列表需要在出现或出现时更新一样,也许当我拖动列表时列表会更新,那么单元格可以接收触摸输入吗?请帮我解决这个问题

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)
    }
}
struct客户端列表:视图{
@获取请求
var客户端:FetchedResults
@国家私有变量selectedClient:UUID?
@环境对象变量设置:用户设置
@ObservedObject var模型=模型()
init(谓词:NSPredicate?){
let请求:NSFetchRequest=Client.fetchRequest()
request.sortDescriptors=[]
如果let谓词=谓词{
request.predicate=谓词
}否则{
request.fetchLimit=50
}
_clients=FetchRequest(FetchRequest:request)
}
var body:一些观点{
名单{
ForEach(客户端,id:\.self){client in
VStack(对齐:。中心){
HStack{
文本(“\(client.firstName??)”+“\(client.lastName??)”)
.font(.system(大小:17))
.fontWeight(.medium)
.foregroundColor(self.selectedClient==client.id?Color.white:Color.init(十六进制:“47535B”))
.multilitextalignment(.leading)
.padding(.leading)
垫片()
文本(client.clientID??)
.font(.system(大小:17))
.fontWeight(.medium)
.foregroundColor(self.selectedClient==client.id?Color.white:Color.init(十六进制:“47535B”))
.multilitextalignment(.leading)
.padding(.training)
}
.padding(.vertical,10.0)
}
.frame(最小宽度:0,最大宽度:。无穷大,最小高度:0,最大高度:75.0)
.background(self.selectedClient==client.id?Color.init(十六进制:“666699”):Color.init(十六进制:“F6F6”))
.转弯半径(7.0)
.ontapsigne{
使用动画(.spring()){
self.settings.viewingProfile=true
}
self.selectedClient=client.id!
self.settings.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(最小宽度:0,最大宽度:。无穷大,最小高度:0,最大高度:。无穷大)
.padding(.bottom,27.0)
.填充(.10.0水平)
}
}

这取决于列表不是当前焦点元素,我正在寻找一种在视图出现时立即聚焦列表的方法。这取决于列表不是当前焦点元素,我正在寻找一种在视图出现时立即聚焦列表的方法。