首页 > 解决方案 > 如何在 SwiftUI 中访问 TupleView 的视图?

问题描述

这是一个简单的方法来展示我正在尝试做的事情:

let test = ("Hello", " world!")

let read = test.0

如您所见,我定义了一个元组,并在下一行中访问了它的第 0 项。我正在尝试像这样对 TupleView 做同样的事情:

struct ContentView: View {
    var body: some View {
        
        CustomView {
            Text("Hello, world!")
            Text("Hello, world!")
        }
    }
}


struct CustomView<Content1: View, Content2: View>: View {
    
    @ViewBuilder let content: () -> TupleView<(Content1, Content2)>
    
    var body: some View {
        
        return VStack {
            
            content.0.background(Color.red)          // <<: here!
            
            content.1.background(Color.yellow)       // <<: here!
            
        }
        
    }
    
}

我从 xCode 收到此错误:

'() -> TupleView<(Content1, Content2)>' 类型的值没有成员 '0'

'() -> TupleView<(Content1, Content2)>' 类型的值没有成员 '1'

我应该怎么做才能达到阅读正文中第 0 项和第 1 项的目标?使用 TupleView

标签: swiftswiftui

解决方案


这是答案:

struct CustomView<Content1: View, Content2: View>: View {
    
    @ViewBuilder let content: () -> TupleView<(Content1, Content2)>
    
    var body: some View {
        
        return VStack {
            
            content().value.0.background(Color.red)
            
            content().value.0.background(Color.yellow)
            
        }
        
    }
    
}

推荐阅读