swiftui - 如何隐藏 SwiftUI 列表分隔符

标签 swiftui ios13

这个问题在这里已经有了答案:





How to remove "row" separators/dividers from a List in SwiftUI?

(8 个回答)


12 个月前关闭。




我试图隐藏列表中单元格之间的分隔线,但根据 Apple 的文档,似乎没有办法做到这一点。

知道怎么做吗?

最佳答案

iOS 15:
今年苹果推出了新的修改器.listRowSeparator可用于设置分隔符的样式。您可以通过.hidden隐藏它:

List {
    ForEach(items, id:\.self) { 
        Text("Row \($0)")
            .listRowSeparator(.hidden)
    }
}

iOS 14
在 iOS 14 中,您可以考虑使用 LazyVStack而不是为此列出:
ScrollView {
    LazyVStack {
        ForEach((1...100), id: \.self) {
           Text("Placeholder \($0)")
        }
    }
}
请记住,LazyVStack很懒惰,不会一直渲染所有行。因此它们的性能非常好,并且是 Apple 自己在 WWDC 2020 中推荐的。

iOS 13
有一个UITableView SwiftUI 的背后 List对于 iOS。所以要删除
额外的分隔符(在列表下方):
您需要一个 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")
    }
}

关于swiftui - 如何隐藏 SwiftUI 列表分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529765/

相关文章:

每次用户进入后台至少 30 秒时,在 iOS 13 上运行的 iOS 应用程序都会重置

ios - 对 Transformable 属性采用 NSSecureUnarchiveFromDataTransformer 时发生崩溃

ios - 由于未捕获的异常 'NSInternalInconsistencyException' 而终止应用程序,原因 : 'threading violation: expected the main thread'

iOS 13 - 推送时的 Buggy 大标题 UINavigationBar

ios - 使用 Core Data(在 SwiftUI 中)提供的数据并与另一个 View 共享

SwiftUI ScrollView VStack GeometryReader 高度被忽略

ios - Unicode箭头与文本不同

app-store - 通过 API 或接口(interface)将 App Store Connect Tester 反馈直接提交给 JIRA

macos - SwiftUI - 更改光标

json - 将 JSON 数据存储到 CoreData