Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui 快捷界面:列表刷新向上滚动_Swiftui_Xcode11_Swift5 - Fatal编程技术网

Swiftui 快捷界面:列表刷新向上滚动

Swiftui 快捷界面:列表刷新向上滚动,swiftui,xcode11,swift5,Swiftui,Xcode11,Swift5,我刚刚发现了一个有趣的行为。如果注释了列表的.id(UUID().uuidString)修饰符,则当用户修改在初始视图中不可见的绑定控件的值时(这意味着该控件可能位于列表末尾的某个位置),列表将向上滚动,因为绑定值将刷新视图。但是,如果.id(UUID().uuidString)修改器被注释掉,列表将不会向上滚动,它将保持原样-这对我有好处 我只是好奇这是否是预期的行为。当列表中有id时,是否有任何东西会阻止向上滚动 import SwiftUI struct ScrollUpProblem

我刚刚发现了一个有趣的行为。如果注释了列表的.id(UUID().uuidString)修饰符,则当用户修改在初始视图中不可见的绑定控件的值时(这意味着该控件可能位于列表末尾的某个位置),列表将向上滚动,因为绑定值将刷新视图。但是,如果.id(UUID().uuidString)修改器被注释掉,列表将不会向上滚动,它将保持原样-这对我有好处

我只是好奇这是否是预期的行为。当列表中有id时,是否有任何东西会阻止向上滚动


import SwiftUI

struct ScrollUpProblem: View {
    @EnvironmentObject var qList: MemoryObjectRep // MemoryObjectRep is a class keeping published parameters.
    var body: some View {
        NavigationView{
            List{
                ForEach(self.qList.QuestionList) { question in
                    ScrollUpProblemDetail(question:   self.$qList.QuestionList[self.qList.QuestionList.firstIndex(of: question)!]                                    )
                }
            }
            .id(UUID().uuidString) // <<<<<<<< ATTENTION HERE
        }
    }

}

struct ScrollUpProblemDetail: View {
    @Binding var question: SurveyQuestion

    var body: some View {
        NavigationLink(destination:QuestionCardDetail(question: $question)){
            HStack(spacing: 0){
                Text("AnyText")
                Spacer()
                Toggle(isOn: self.$question.BoolValue)
                {
                    Text("")
                }.id(UUID().uuidString)

            }
        }
    }
}

导入快捷键
结构问题:视图{
@EnvironmentObject变量qList:MemoryObjectRep//MemoryObjectRep是一个保存已发布参数的类。
var body:一些观点{
导航视图{
名单{
ForEach(self.qList.QuestionList){question in
ScrollUpProblemDetail(问题:self.$qList.QuestionList[self.qList.QuestionList.firstIndex(of:question)!]))
}
}

.id(UUID().uuistring)/id是视图状态的一部分。如果更改它,将重新创建视图。

OMG,这也是另一个错误的原因[出于某些原因,绑定的步进器控件在多个点击中无法工作。对其进行了完美的解释…检查它!