如何删除/调整列表中的分隔符?

时间:2019-06-07 17:28:51

标签: list swiftui

在SwiftUI的List视图中是否可以删除分隔符或调整分隔符插入?

在UIKit中可以通过以下方式实现

tableView.separatorStyle = .none

tableview.separatorInset = UIEdgeInsets(top: 0, left: 18, bottom: 0, right: 18)

相应的SwiftUI替代品是什么?

5 个答案:

答案 0 :(得分:4)

这一切都可以在SwiftUI中完成

要与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)

iOS 15.0+

Mac 催化剂 15.0+

<块引用>

listRowSeparator(_:edges:)

设置与此特定行关联的分隔符的显示模式。 https://developer.apple.com/

List {
    ForEach(cars) { car in
        Text(car.model)
            .listRowSeparator(.hidden)
    }
}