如何在SwiftUI中使用符合ForEach视图的协议列表

如何在SwiftUI中使用符合ForEach视图的协议列表,swiftui,swift-protocols,Swiftui,Swift Protocols,我试图使用符合ForEach视图的协议列表,但它总是抱怨“协议只能用作通用约束,因为它具有自身或关联的类型要求” 这就是我一直在尝试的 protocol ItemView: View, Identifiable { associatedtype ContentView: View var title: String { get } var body: ContentView { get } } struct AItemView: ItemView { let

我试图使用符合ForEach视图的协议列表,但它总是抱怨“协议只能用作通用约束,因为它具有自身或关联的类型要求”

这就是我一直在尝试的

protocol ItemView: View, Identifiable {
    associatedtype ContentView: View

    var title: String { get }
    var body: ContentView { get }
}

struct AItemView: ItemView {
    let id = UUID()
    var title: String
    var body: some View {
        Text("Item A \(title)")
    }
}

struct BItemView: ItemView {
    let id = UUID()
    var title: String
    var body: some View {
        Text("Item B \(title)")
    }
}

struct ListView: View {
    private var listItems: [ItemView] {
        return [AItemView(title: "A"), BItemView(title: "B")]
    }

    var body: some View {
        VStack {
            ForEach(listItems) { item in
                item
                Divider()
            }
        }
    }
}

你明白了吗?@Michalk不幸的是。。。没有……你明白了吗?@Michalk不幸的是。。。不。。。