ios 如何消除SwiftUI Form中Section上方的空格?

u4vypkhs  于 2023-04-08  发布在  iOS
关注(0)|答案(4)|浏览(153)

我想消除Form中第一个Section上方的空间

var body: some View {
        VStack {
            Text("Text 1")
            Form {
                Section {
                    Text("Text 2")
                }
            }
        }
    }

我尝试将Section标题的帧设置为0,但不起作用

t98cgbkg

t98cgbkg1#

解决方案是添加一个带有EmptyView()Section,然后将您想要的视图放在Section的头文件的顶部。

var body: some View {
    VStack {
        Text("Text 1")

        Form {
            Section(header: VStack(alignment: .center, spacing: 0) {
                Text("Text 2")
                    .padding(.all, 16)
                    .frame(width: UIScreen.main.bounds.width, alignment: .leading)
                    .background(Color.white)
            }) {
                EmptyView()
            }.padding(.top, -6)
        }
    }
}
vjhs03f7

vjhs03f72#

我会提供一个虚拟的头视图,并将其大小设置为零:

Section(header: Color.clear
                .frame(width: 0, height: 0)
                .accessibilityHidden(true)) {
  Text("Text 2")
}
6za6bjd0

6za6bjd03#

最好的解决方案可能取决于你的需求。对我来说,最有效的是一个空的文本视图,如下所示:

Section(header: Text("")) {
    MySectionView()
  }

顺便说一句,我尝试了EmptyView(),但它完全被忽略了;就像在空间里一样。

nhhxz33t

nhhxz33t4#

这就简单多了:

struct ContentView: View 
{

    init() 
    {
        UITableView.appearance().tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: Double.leastNonzeroMagnitude))
    }

    var body: some View 
    {

    }
}

相关问题