Text()和Divider()之间的空格

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

我是SwiftUI的新手,正在尝试推广。 :)

我的文本(红色框)和分隔线之间的空间(以绿色标记)从哪里来?如何消除它?

[我尝试了几件事,例如玩listrowinsets等,但我不明白。

import SwiftUI

struct ContentView: View {

    init() {
        UITableView.appearance().separatorStyle = .none
    }

    var drugs = [Drug(id: 0, name: "Stalevo"), Drug(id: 1, name: "Levodopa"), Drug(id: 2, name: "Exelon"), Drug(id: 3, name: "Excitalopram")]

    var body: some View {


        NavigationView {

            List {
                Section() {
                    Text("8:00 Uhr").frame(width: UIScreen.main.bounds.width, height: 15.0, alignment: .bottom).listRowInsets(EdgeInsets(
                    top: 35,
                    leading: 0,
                    bottom: 0,
                    trailing: 0)).font(.subheadline).background(Color.red)

                    ForEach(drugs) { drug in

                        Divider()
                        HStack {
                            Image("drugAspirin").frame(width: 15, height: 15).padding(5)



                            VStack(alignment: .leading) { Text(drug.name).foregroundColor(.blue)
                                HStack {
                                    Text("1x")
                                    Text("34mg").foregroundColor(Color.gray)
                                }
                            }.padding(.leading, 7.0)
                        }
                    }
                }.navigationBarTitle(Text("Medizin")).listRowInsets(EdgeInsets(
                top: 0,
                leading: 20,
                bottom: 0,
                trailing: 0))
                    .background(Color.white)

                Spacer()

            }
        }
    }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

enter image description here

ios list swiftui space divider
1个回答
0
投票

这是标准的Divider的填充。

最简单的方法是将Divider移到ForEach的底部,如下所示

    ForEach(drugs) { drug in

        HStack {
            Image("drugAspirin").frame(width: 15, height: 15).padding(5)



            VStack(alignment: .leading) { Text(drug.name).foregroundColor(.blue)
                HStack {
                    Text("1x")
                    Text("34mg").foregroundColor(Color.gray)
                }
            }.padding(.leading, 7.0)
        }
        Divider()
    }
}.navigationBarTitle(Text("Medizin")).listRowInsets(EdgeInsets(

...或使用一像素高度Rectangle编写自己的分隔线,并通过自定义填充管理分隔。

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