CalebK Asked: 2024-11-09 05:41:32 +0800 CST2024-11-09 05:41:32 +0800 CST 2024-11-09 05:41:32 +0800 CST 消除 iPad 上 .plain 样式带来的列表标题背后的活力效果 772 我正在使用 List 来实现高度定制的界面。这主要是因为字段header以及在.plain模式下标题如何粘在内容上方。 问题是标题似乎有鲜艳效果。这是不理想的,因为在这种情况下,标题应该只是左侧的一个按钮。 有什么方法可以消除这种振动效果吗?或者我应该使用一些复杂的几何读取器逻辑来构建自己的粘性标头实现? swiftui 2 个回答 Voted Best Answer Sweeper 2024-11-09T05:58:17+08:002024-11-09T05:58:17+08:00 由于您想要的 UI 看起来与内置的 完全不同List,我建议只使用LazyVStack中的来构建它ScrollView。您可以使用pinnedViews: .sectionHeaders来获取列表中的粘性部分标题.plain。 ScrollView { LazyVStack(pinnedViews: .sectionHeaders) { Section("Header 1") { ... } Section("Header 2") { ... } ... } } CalebK 2024-11-09T07:13:25+08:002024-11-09T07:13:25+08:00 我发现的另一个解决方案是将标题的框架设置为 0,并将 UI 置于覆盖层中,如下所示 Section { Text("Section \(num)") .padding(.leading, 100) } header: { VStack {} .frame(width: 0, height: 0) .overlay(alignment: .topLeading) { Text("Header") .padding() .listRowBackground(Color.clear) .background(RoundedRectangle(cornerRadius: 16).fill(.white)) .frame(width: 120, height: 20) } }
由于您想要的 UI 看起来与内置的 完全不同
List
,我建议只使用LazyVStack
中的来构建它ScrollView
。您可以使用pinnedViews: .sectionHeaders
来获取列表中的粘性部分标题.plain
。我发现的另一个解决方案是将标题的框架设置为 0,并将 UI 置于覆盖层中,如下所示