如何从 WatchOS 的 SwiftUI 列表中删除分隔符?
Posted
技术标签:
【中文标题】如何从 WatchOS 的 SwiftUI 列表中删除分隔符?【英文标题】:How to remove separators from SwiftUI list in WatchOS? 【发布时间】:2020-02-04 18:20:44 【问题描述】:如何从 WatchOS 中的 SwiftUI 列表中删除分隔符?
我已经在***中查看了一些答案,他们建议使用
UITableView.appearance().tableFooterView = UIView()
UITableView.appearance().separatorStyle = .none
看起来它们只适用于 ios,显然它们不适用于 WatchOS SwiftUI 列表。有什么方法可以自定义吗?
编辑 -
UITableView.appearance().separatorStyle = .none
显然上面的代码并没有隐藏 iOS 14 中的分隔符。
【问题讨论】:
【参考方案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
。
如果您将ScrollView
与VStack
一起使用,您将能够获得类似的结果。这种情况下你可以在VStack
上设置spacing
来达到你想要的效果。
【讨论】:
但是,单元格之间的间距呢?单元格之间似乎有一个默认空间。不过我不想要。 目前没有API可以修改。您要么必须创建自定义 ListStyle,要么不使用 List。如果您将 ScrollView 与 VStack 一起使用,您将能够获得类似的结果。 作为参考,WatchKit
与 UITableView
的等效项是 WKInterfaceTable
,但正如您所见,外观代理 API UIAppearance
在 WatchOS
上不存在。
是的,正如@Tristan 指定的那样,使用带有 VStack 的 ScrollView 是实现此目的的唯一有效方法。以上是关于如何从 WatchOS 的 SwiftUI 列表中删除分隔符?的主要内容,如果未能解决你的问题,请参考以下文章
watchOS 上的 SwiftUI 表单:点击手势间歇性失败
SwiftUI:在 Tabview 的 WatchOS 8.1RC 上立即弹出 NavigationLink
在watchOS中使用.listRowBackground时如何将cornerRadius添加到SwiftUI List Cell?