Swiftui ScrollView的使用

Swiftui ScrollView的使用,swiftui,Swiftui,我编写了以下代码来创建一个列表。之后,我将视图放在滚动视图中 struct ListView: View { @State private var selectedState = SortState.commonName @State private var searchText: String = "" let alphabet = ["A","B","C","

我编写了以下代码来创建一个列表。之后,我将视图放在滚动视图中

struct ListView: View {
    
    @State private var selectedState = SortState.commonName
    @State private var searchText: String = ""
    
    let alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
    
    var body: some View {

        NavigationView {
            VStack(alignment: .leading, spacing: nil, content: {
                Picker("Selected Sort State", selection: $selectedState) {
                    ForEach(SortState.allCases, id: \.rawValue) { sortState in
                        Text(sortState.rawValue).tag(sortState)
                    }
                }.pickerStyle(SegmentedPickerStyle()).padding(.horizontal)
                
                                
                SearchBarView(searchText: $searchText)
                
                ScrollViewReader { proxy in
                    itemList.overlay(SectionIndexTitles(proxy: proxy, titles: alphabet))
                }
                            
            })
            .navigationTitle("Items")
        }
    }
    
    var itemList: some View {
        return List{
                ForEach(alphabet, id:\.self) { letter in
                        Section(header: Text(letter).id(letter)) {
                            ForEach(items.filter(
                                {
                                    (item) -> Bool in
                                    item.name.prefix(1) == letter
                                }
                            ), id:\.itemId) { item in
                                NavigationLink(destination: DetailView()) {
                                    ItemRow(item: item)
                                }
                            }
                        }
                }
            } 
    }
}
当我不使用ScrollView包装itemList时,代码运行良好

但是,当我把它放在滚动视图中时。内容消失了

ScrollViewReader { proxy in
                ScrollView(.vertical, showsIndicators: true, content: {
                    itemList.overlay(SectionIndexTitles(proxy: proxy, titles: alphabet))
                })
            }
内容不见了

有什么想法吗?我还尝试将其包含在ScrollView中的VStack中,但也失败了。

使用GeometryReader

ScrollViewReader { proxy in
    GeometryReader { geometry in
        ScrollView(.vertical, showsIndicators: true, content: {
            itemList.overlay(SectionIndexTitles(proxy: proxy, titles: alphabet))
                .frame(width: geometry.size.width, height: geometry.size.height, alignment: .center)
        })
    }
}


非常感谢。我是swiftui新手,请问原因是什么?这可能会造成尺寸问题。因为我们有两个,所以在scroll中滚动可能会在内容大小上出现一些问题。谢谢,所以在这里包含scrollview似乎是错误的。。。。嗯,你也可以使用部分页脚。事实上,我试图包括一个滚动视图,我想限制覆盖正确的索引在列表框架内。如果我包含一个scrollview,它会工作,但是结果看起来也很奇怪。无论如何,非常感谢。