SwiftUI 中的列表视图在列表上方显示我无法摆脱的灰色区域

Posted

技术标签:

【中文标题】SwiftUI 中的列表视图在列表上方显示我无法摆脱的灰色区域【英文标题】:List View in SwiftUI is showing a grey area above the list which I can't get rid of 【发布时间】:2020-11-06 10:08:43 【问题描述】:

我不会撒谎,但 SwiftUI 中的修饰符非常棘手。我想摆脱列表上方的灰色区域。我已经尝试了所有,填充,偏移,框架,你的名字。它还在那里。为什么它仍然存在。它是某种我可能无法定义的标题吗?无论如何,这是代码:

           List
                
                ForEach(prim, id: \.id)   value in
                    GeometryReader  geometry in
                    HStack 
                        Text(value.label)
                            .font(.system(size: 12))
                            .padding(.vertical, 0)
                            .frame(width: geometry.size.width/4)
                        
                        Spacer(minLength: geometry.size.width/4)
                        
                        TextField("", value: value.data   , formatter: NumberFormatter())
                            .font(.system(size: 12))
                            .padding(.vertical, 0)
                            .keyboardType(.numberPad)
                            .textFieldStyle(RoundedBorderTextFieldStyle())
                            
                    .padding(.top, 0)
                    .padding(.top, 0)
                .padding(.top, 0)
            
            .padding(.top, 0)
            .listStyle(GroupedListStyle())

我没有定义灰色区域,那为什么会在那里?它会将我的列表向下推,因此列表中的第三项消失了。

【问题讨论】:

【参考方案1】:

如果不为空NavigationView(因为不清楚这个List放在哪里),那么是因为使用了list样式。

你可以改用普通样式

        
        .padding(.top, 0)
        .listStyle(PlainListStyle())

【讨论】:

你真是个天才,我为此扯了头发。但现在很明显我应该看到它 - 它是“组”修饰符应该引起我的注意! 有没有办法在仍然使用 GroupedListStyle 的同时摆脱顶部/底部填充?【参考方案2】:

var body: some View 之前放这个:

init()

    UITableView.appearance().backgroundColor = .clear

【讨论】:

以上是关于SwiftUI 中的列表视图在列表上方显示我无法摆脱的灰色区域的主要内容,如果未能解决你的问题,请参考以下文章

选择添加到 SwiftUI 列表的新项目

SwiftUI:如何在动态列表或 LazyVStack 中获取视图框架

SwiftUI 制作一个只显示一定数量行的列表

SwiftUI:导航在带有部分的列表中无法正常工作

从 SwiftUI 中的工作表更新列表视图中的行

SwiftUI 列表行分隔符样式无法在导航中正常工作