在SwiftUI的List
视图中是否可以删除分隔符或调整分隔符插入?
在UIKit中可以通过以下方式实现
tableView.separatorStyle = .none
和
tableview.separatorInset = UIEdgeInsets(top: 0, left: 18, bottom: 0, right: 18)
相应的SwiftUI替代品是什么?
答案 0 :(得分:4)
要与UIKit tableView.separatorStyle = .none
中的旧方法相比,删除分隔符,请在init或表视图的onAppear方法中添加以下行:
init() {
UITableView.appearance().separatorStyle = .none
}
要与UIKit tableview.separatorInset = UIEdgeInsets(top: 0, left: 18, bottom: 0, right: 18)
中的行相比调整分隔符插入,请在init或onAppear方法中添加以下行:
List(...){
...
}.onAppear() {
UITableView.appearance().separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 50)
}
答案 1 :(得分:2)
您可以使用以下方法删除分隔符:UITableView.appearance()。separatorStyle = .none in SwiftUI
struct SomeListView : View {
init( ) {
UITableView.appearance().separatorStyle = .none
}
var body : some View {
Text("TEST")
}
struct CallList : View {
var body : some View {
List() {
SomeListView()
}
}
}
答案 2 :(得分:1)
目前,似乎没有用于调整分隔符的修饰符。 作为解决方案,您可以使用
ScrollView {
HStack {
ForEach(objects) { object in
Text(object.name)
}
}
}
答案 3 :(得分:1)
对于后者,您可以使用listRowInsets
:
List {
Text("Item 1")
Text("Item 2")
Text("Item 3")
}
.listRowInsets(EdgeInsets(top: 0, left: 18, bottom: 0, right: 18))
答案 4 :(得分:0)
Mac 催化剂 15.0+
<块引用>listRowSeparator(_:edges:)
设置与此特定行关联的分隔符的显示模式。 https://developer.apple.com/
List {
ForEach(cars) { car in
Text(car.model)
.listRowSeparator(.hidden)
}
}