Ios 如何更改列表中的ListStyle

Ios 如何更改列表中的ListStyle,ios,swift,swiftui,Ios,Swift,Swiftui,在SwiftUI列表中似乎有一个名为ListStyle的属性 如何更改列表的样式 struct ListView : View { var body: some View { NavigationView { List(Item.create().identified(by: \.id)){ row in NavigationButton(destination: DetailsView(item: row)) { RowView(item

在SwiftUI
列表中
似乎有一个名为
ListStyle
的属性

如何更改列表的样式

struct ListView : View {
var body: some View {
    NavigationView {
    List(Item.create().identified(by: \.id)){ row in
        NavigationButton(destination: DetailsView(item: row)) {
            RowView(item: row)
        }
    }
    .listStyle(StaticMember<PlainListStyle.Member>.self) // error here
    .foregroundColor(.red)
    .navigationBarTitle(Text("List View"))
    .statusBar(hidden: false)
    }
  }
}
我已经尝试了很多方法,但是与
ListStyle
一致的每个样式都是struct,就像它们不是枚举值一样

有人知道如何更改
列表的样式吗

Xcode错误

无法将“StaticMember.type”(也称为“StaticMember>.type”)类型的值转换为预期的参数类型“StaticMember”

使用:
.listStyle(StaticMember)

Xcode错误

无法将类型为“(StaticMember).type”(又名“StaticMember>.type”)的值转换为预期的参数类型“StaticMember”

使用:
.listStyle(StaticMember)
.listStyle(StaticMember)

Xcode错误

“>”不是后缀一元运算符

Xcode Beta 5和nexts的更新 在Xcode Beta 5之后,这种方法现在已被弃用;现在苹果为每种风格都创建了一个结构实现。因此,您应该这样做:
.listStyle(GroupedListStyle())
。同样的方法也适用于其他可用样式

beta 5之前的旧实现 只需执行
.listStyle(.grouped)
。供其他列表样式使用

  • .carousel
  • .default
  • .plain
  • .sidebar
基本上,您只是将
ListStyle.grouped
传递给该方法,但是由于swift类型推断,您不需要指定结构。 每个静态成员都以这种方式工作

StaticMember
表示在
ListStyle
协议中有一个静态成员。声明是这样的

extension StaticMember where Base : ListStyle {

    /// A `ListStyle` that implements the system default grouped `List`
    /// interaction and appearance.
    public static var grouped: GroupedListStyle.Member { get }
}

从Xcode 11 beta 5开始,苹果需要以下内容,简要概述如下:

以下是各种风格的分类,以及它们在iOSwatchOS之间的使用位置,以及它们的推出时间

iOS和watchOS 随iOS 13和watchOS 6推出:

  • PlainListStyle

  • ListStyle

  • DefaultListStyle

仅限iOS iOS 13推出:

  • GroupedListStyle
iOS 14推出:

  • InsetGroupedListStyle
  • InsetListStyle
  • SidebarListStyle
这个问题的一些答案还包括特定于watchOS的样式,但没有清楚地标记出来,尽管问题被标记为iOS。为了完整起见

仅限watchOS 随watchOS 6推出:

  • CarouselListStyle
随watchOS 7推出:

  • ellipCallistStyle

在Xcode 11.2.1中,正确答案如下所示

.listStyle(GroupedListStyle())

Conforming Types  ->
CarouselListStyle
DefaultListStyle
GroupedListStyle
PlainListStyle
SidebarListStyle

ref:

我试过了,还是一样issue@user28434检查我使用的
.plain
的更新,查看
PlainListStyle
.listStyle(GroupedListStyle())
.listStyle(GroupedListStyle())

Conforming Types  ->
CarouselListStyle
DefaultListStyle
GroupedListStyle
PlainListStyle
SidebarListStyle