Swiftui 如何在列表中隐藏分隔符?(第14条)

Swiftui 如何在列表中隐藏分隔符?(第14条),swiftui,ios14,Swiftui,Ios14,正如你所知,iOS 14上有很多变化,尤其是列表 我发现这个修饰符用于在列表中隐藏分隔符,但是.listStyle(SidebarListStyle())修饰符并没有像我预期的那样工作 List{ MessageDetail(messages: self.$viewModel.messages) }.noSeparators() .modifier(DismissingKeyboard()) .scaleEffect(x: 1, y: -1, anchor: .center) .off

正如你所知,iOS 14上有很多变化,尤其是列表

我发现这个修饰符用于在列表中隐藏分隔符,但是.listStyle(SidebarListStyle())修饰符并没有像我预期的那样工作

List{
  MessageDetail(messages: self.$viewModel.messages)
}.noSeparators()
 .modifier(DismissingKeyboard())
 .scaleEffect(x: 1, y: -1, anchor: .center)
 .offset(y:-5)
分机:

extension List {
    @ViewBuilder func noSeparators() -> some View {
        #if swift(>=5.3) // Xcode 12
        if #available(iOS 14.0, *) { // iOS 14
            self
            .listStyle(SidebarListStyle())
        } else { // iOS 13
            self
            .listStyle(PlainListStyle())
            .onAppear {
                UITableView.appearance().tableFooterView = UIView()
                UITableView.appearance().separatorStyle = .none
            }
            .onDisappear {
                UITableView.appearance().separatorStyle = .singleLine
            }
        }
        #else // Xcode 11.5
        self
        .listStyle(PlainListStyle())
        .onAppear {
            UITableView.appearance().tableFooterView = UIView()
            UITableView.appearance().separatorStyle = .none
        }
        .onDisappear {
            UITableView.appearance().separatorStyle = .singleLine
        }
        #endif
    }
}
结果是:


此样式
SidebarListStyle()
绝对不是用于隐藏分隔符的。以防万一。@Asperi我研究了许多隐藏分隔符的解决方案,几乎每个人都建议使用SidebarListStyle(),但都不起作用。我仍在寻找一个有效的解决方案。这能回答你的问题吗?@Asperi是的,我尝试过,它有效,但列表底部仍然有一个分隔符。我想也许我能找到一个更好的解决方案。我在列表的底部没有更多的分隔符。Xcode 12GB/iOS14GM。