为啥我的 SwiftUI 列表分隔符没有正确排列?
Posted
技术标签:
【中文标题】为啥我的 SwiftUI 列表分隔符没有正确排列?【英文标题】:Why are my SwiftUI List Dividers not lining up properly?为什么我的 SwiftUI 列表分隔符没有正确排列? 【发布时间】:2020-12-27 17:59:20 【问题描述】:我正在尝试正确排列我的 SwiftUI 列表,但我无法将列表分隔线居中。出于某种原因,列表似乎居中,但分隔线与尾随对齐,而不是与中心对齐。
我为元素添加了一些背景颜色以对其进行调试,但似乎无法找出发生这种情况的原因。
似乎也没有任何填充物阻挡它。也许它与列表样式有关?
代码如下:
List
ForEach(savedpoems, id:\.title) SavedPoem in
NavigationLink (destination: DetailViewSaved(savedPoem: SavedPoem))
HStack
VStack (alignment: .leading)
Text("\(SavedPoem.title ?? "")")
.font(.headline)
.foregroundColor(.black)
.lineLimit(1)
.padding(.bottom, 3)
Text("\(SavedPoem.author ?? "")")
.font(.subheadline)
.foregroundColor(.secondary)
.padding(.trailing)
.background(Color.orange)
Spacer()
.padding()
.background(Color.blue)
.padding(.all, 0)
.background(Color.red)
.onDelete(perform: remove)
.background(Color.yellow)
.navigationTitle("")
.navigationBarHidden(true)
.padding(.bottom, 30)
.listStyle(PlainListStyle())
.background(Color.black)
.padding(.horizontal)
.edgesIgnoringSafeArea(.bottom)
有什么建议吗?提前致谢。
【问题讨论】:
默认列表行分隔符是......只是默认值 - Apple 按照他们的想法绘制它们。如果它们不符合您的需求,您可以隐藏它们(参见 ***.com/a/62598818/12299030)并自己绘制(参见 ***.com/a/58787290/12299030) 所以这不是我的代码的问题,默认行分隔符总是对齐尾随? 【参考方案1】:如果您将.leading
.padding
减少为您的List
,它应该会变平。
以下是您的代码示例,说明放置位置(底部)
.padding(.leading, -16)
//Something not Listed I placed a VStack
.padding(.horizontal)
.edgesIgnoringSafeArea(.bottom)
【讨论】:
以上是关于为啥我的 SwiftUI 列表分隔符没有正确排列?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 SwiftUI ObservedObject 不能在列表行中工作?