如何着色/删除 SwiftUI 列表中最后一行和倒数第二行之间的分隔符?

Posted

技术标签:

【中文标题】如何着色/删除 SwiftUI 列表中最后一行和倒数第二行之间的分隔符?【英文标题】:How to color/remove the separator between last and second to last row in a SwiftUI List? 【发布时间】:2020-02-29 08:26:09 【问题描述】:

我正在使用简单的 SwiftUI 列表,例如

List 
  Text("A")
  Text("A")
  Text("A")

我已经设法通过添加 UITableView.appearance().separatorColor = .clear 来删除标准分隔线,但是在最后一个元素和倒数第二个元素之间似乎还有另一个细长的浅灰色分隔线:

如何移除此分隔线或更改其颜色?

【问题讨论】:

【参考方案1】:

我已经设法通过添加删除标准分隔符 UITableView.appearance().separatorColor = .clear

改为使用

UITableView.appearance().separatorStyle = .none

【讨论】:

这只会删除标准列表分隔符,而不是屏幕截图中显示的其他灰线。 @fasoh,使用提供的列表代码,我没有看到任何 additional 行,实际上它不会导致屏幕截图,所以您能否提供所有代码。 【参考方案2】:

您可以将ScrollViewForEach 一起使用,而不是默认的List。它将没有默认样式,您可以定义自己的样式。

struct ContentView: View 
    @State private var words = (1...50).map String($0) 
    var body: some View 
        GeometryReader  geometry in
            ScrollView 
                ForEach(self.words, id: \.self)  word in
                    Text(word)
                
                    .frame(width: geometry.size.width)
            
        
    

【讨论】:

以上是关于如何着色/删除 SwiftUI 列表中最后一行和倒数第二行之间的分隔符?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:删除 ForEach 中的最后一行

SwiftUI:删除 ForEach 中的最后一行

SwiftUI 中带有文本字段的长列表

SwiftUI + Realm:从列表中删除一行会导致异常“RLMException”,原因:“对象已被删除或失效。”

尝试删除最后一个元素时,带有子项的 SwiftUI (2.0) 列表崩溃

macOS 上的 SwiftUI:如何为 onDelete 启用 UI(从列表中删除)