首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用@ViewBuilder创建支持多个子级的视图

使用@ViewBuilder创建支持多个子级的视图
EN

Stack Overflow用户
提问于 2019-06-11 03:21:19
回答 1查看 14.7K关注 0票数 27

SwiftUI中的一些视图,如VStack和HStack,支持将多个视图作为子视图,如下所示:

代码语言:javascript
复制
VStack {
  Text("hello")
  Text("world")
}

据我所知,正如here所解释的那样,他们使用ViewBuilder来实现这一点。

我们如何使用@ViewBuilder来创建我们自己的支持多个子视图的视图?例如,假设我想创建一个接受任意子对象的Layout视图--如下所示:

代码语言:javascript
复制
struct Layout : View {
  let content: Some View 

  var body : some View {
    VStack {
      Text("This is a layout")
      content()
    }
  } 
}

你知道如何在SwiftUI中实现这个模式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-11 04:27:05

下面是一个不做任何事情的示例视图,只是为了演示如何使用@ViewBuilder

代码语言:javascript
复制
struct Passthrough<Content>: View where Content: View {

    let content: () -> Content

    init(@ViewBuilder content: @escaping () -> Content) {
        self.content = content
    }

    var body: some View {
        content()
    }

}

用法:

代码语言:javascript
复制
Passthrough {
    Text("one")
    Text("two")
    Text("three")
}
票数 63
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56532366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档