我是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()
}
}
最佳答案
这是标准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
编写自己的分隔线,并通过自定义填充管理分隔。关于ios - Text()和Divider()之间的空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59227615/