SwiftUI 部分标题未固定

问题描述 投票:0回答:1

我试图在滚动列表时在屏幕上保留节标题,但我的代码不起作用。 我正在关注 这个 Apple 教程,但我的代码对保留在屏幕上的标题没有影响。

    var body: some View {
        NavigationSplitView {
            List {
                LazyVStack(pinnedViews: .sectionHeaders) {
                    ForEach(searchDates, id: \.self) { date in
                        Section(header: Text(date)) {
                            ReceiptSection(searchResults: searchResults, date: date)
                        }
                    }.onDelete(perform: deleteItems)
                }
            }

我尝试移动插入 LazyVStack 的位置,但这也没有效果。谁能告诉我如何修复它?

swift swiftui
1个回答
0
投票

惰性堆栈应该位于

ScrollView
内,而不是
List
内。事实上,他们并不“懒惰”除非他们处于
ScrollView
。另一方面,
List
会将其视为一个巨大的列表行。

ScrollView {
    LazyVStack(pinnedViews: .sectionHeaders) {
        ForEach(searchDates, id: \.self) { date in
            Section(header: Text(date)) {
                ReceiptSection(searchResults: searchResults, date: date)
            }
        }.onDelete(perform: deleteItems)
    }
}

您还可以考虑使用具有粘性标题的

ListStyle
。例如iOS 上的
.plain
风格。
NavigationSplitView
设计为由选择
List
驱动 - 当选择列表行时,它会导航到详细信息视图。

© www.soinside.com 2019 - 2024. All rights reserved.