我试图隐藏列表中单元格之间的分隔线,但根据苹果文档的说明似乎没有办法实现。
有什么好的方法吗?
今年,苹果推出了一个新的修饰符.listRowSeparator
,可用于样式分隔符。您可以传递.hidden
来隐藏它:
List {
ForEach(items, id:\.self) {
Text("Row \($0)")
.listRowSeparator(.hidden)
}
}
在iOS 14中,您可能考虑使用LazyVStack
替代列表进行此操作:
ScrollView {
LazyVStack {
ForEach((1...100), id: \.self) {
Text("Placeholder \($0)")
}
}
}
请注意,LazyVStack
是一种懒加载方式,不会一次性渲染所有行。因此它们非常高效,并且在 WWDC 2020 中由 Apple 自己建议使用。
在 SwiftUI 的 List
中,iOS 使用的是 UITableView
。所以要去掉
你需要一个 tableFooterView
来移除。
你需要将 separatorStyle
设置为 .none
。
init() {
// To remove only extra separators below the list:
UITableView.appearance().tableFooterView = UIView()
// To remove all separators including the actual ones:
UITableView.appearance().separatorStyle = .none
}
var body: some View {
List {
Text("Item 1")
Text("Item 2")
Text("Item 3")
}
}
.listRowSeparator(.hidden)
应用于List
中的每个“元素”,而不是应用于List
本身,因为那样不会产生任何效果。 - PDK.listRowSeparator(.hidden)
应用于List
中的每个“元素”,而不是应用于List
本身,因为那样不会产生任何效果。 - undefined