SwiftUI:如何在列表上去掉顶部和底部分隔线

3
我正在使用SwiftUI处理列表,发现当只有一行时,分隔符仍会出现在顶部和底部:

enter image description here

同样地,对于具有多行的列表,这些分隔符仍然出现在顶部和底部。如何在保留中间行之间的分隔符的情况下删除列表顶部和底部的分隔符?

请发布一个最小可复现示例(MRE)。另外,您在哪个操作系统上看到这个问题? - Yrb
在forEach之后加上.listRowSeperator(.hidden) - adri567
如何在有多行的情况下显示中间分隔符,同时使顶部和底部的分隔符不可见? - Nicolas Gimelli
2个回答

2
您可以使用修饰符(iOS 15+)来隐藏分隔符。
List {
    ForEach(garage.cars) { car in
        Text(car.model)
            .listRowSeparator(.hidden)    // << this !!
    }
}

0

如果您已经走到这一步,并且想知道我如何保持行,但是以这种方式全面可见而不仅仅是在单元格的一半中,我创建了这个修饰符,可以用于完成每个单元格下方的线。

struct ListSeparatorModifier: ViewModifier {
    
    func body(content: Content) -> some View {
        content
            .alignmentGuide(.listRowSeparatorTrailing) { dimension in
                dimension[.trailing]
            }
            .alignmentGuide(.listRowSeparatorLeading) { dimension in
                dimension[.leading]
            }
    }
}

extension View {
    func listRowSeparator() -> some View {
        self.modifier(ListSeparatorModifier())
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接