swift - 如何在 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
解决方案
这是答案:
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)
}
}
}
推荐阅读
- python - 如何在 Python Turtle 模块中绘制网格线?
- r - R,如何按行值分组?分裂?
- powershell - Powershell 中的堆转储
- ansible - Ansible 内置 COPY 任务 - 它仅以串行方式运行吗?
- javascript - javascript正则表达式检查字符串是否不是所有空格
- javascript - 如何限制用户访问并显示特定菜单部分?
- python - Python中的导入文件找不到自己的导入文件
- debian - apt get update 在使用 debian 源时发布错误
- javascript - 带有javascript的简单计算器,它的功能计算器不适用
- ruby-on-rails - 如何组合来自两个不同模型的查询