【问题标题】:How to remove separators from SwiftUI list in WatchOS?如何从 WatchOS 的 SwiftUI 列表中删除分隔符?
【发布时间】:2020-02-04 18:20:44
【问题描述】:

如何从 WatchOS 中的 SwiftUI 列表中删除分隔符?

我已经在stackoverflow中查看了一些答案,他们建议使用

    UITableView.appearance().tableFooterView = UIView()
    
    UITableView.appearance().separatorStyle = .none

看起来它们只适用于 iOS,显然它们不适用于 WatchOS SwiftUI 列表。有什么方法可以自定义吗?

编辑 -

UITableView.appearance().separatorStyle = .none

显然上面的代码并没有隐藏 iOS 14 中的分隔符。

【问题讨论】:

    标签: swift swiftui watchos


    【解决方案1】:

    我不确定 WatchOS List 上的分隔符是什么意思,但可能您只需要为第一行设置如下所示的盘片颜色

    var body: some View {
        List {
            Text("Hello, World!").listRowPlatterColor(Color.black)
            Text("Hello, World!")
            Text("Hello, World!")
        }
    }
    

    【讨论】:

    • 它删除了背景颜色。两个电池之间仍然有分隔空间。我需要删除它们。我所做的是对单元格使用边缘插入,并为顶部插入给出了一个负值,但我不确定它是否是正确的方法。
    【解决方案2】:

    您可以使用 listRowBackground(),就像 Paul Hudson 在 Hacking with Swift 上展示的那样

    List {
        ForEach(0..<10) {
            Text("Row \($0)")
        }
        .listRowBackground(Color.red)
    }
    

    编辑以突出显示评论:

    目前没有修改List项目间距的API。您要么必须创建自定义ListStyle,要么不使用List。 如果您将ScrollViewVStack 一起使用,您将能够获得类似的结果。这种情况下你可以在VStack上设置spacing来达到你想要的效果。

    【讨论】:

    • 但是,单元格之间的间距呢?单元格之间似乎有一个默认空间。不过我不想要。
    • 目前没有API可以修改。您要么必须创建自定义 ListStyle,要么不使用 List。如果您将 ScrollView 与 VStack 一起使用,您将能够获得类似的结果。
    • 作为参考,WatchKitUITableView 的等效项是 WKInterfaceTable,但正如您所见,外观代理 API UIAppearanceWatchOS 上不存在。
    • 是的,正如@Tristan 指定的那样,使用带有 VStack 的 ScrollView 是实现此目的的唯一有效方法。
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 2019-10-26
    • 2018-02-07
    • 2019-10-23
    相关资源
    最近更新 更多