如何在 SwiftUI 中添加自定义容器视图

dus*_*old 6 swift ios13 swiftui xcode11

我很好奇您是否可以在 SwiftUI 中创建自定义容器视图。我知道您可以创建自定义内容视图,例如Text(),但不确定是否可以复制 say 的功能HStack { }

类似于:

HGrid {
    Text("Lorem ipsum")
    Text("Lorem ipsum")
}
Run Code Online (Sandbox Code Playgroud)

HGrid然后,自定义容器视图(又名)将Spacer()在每个添加的组件之间添加。本质上,例如,将其转换为:

HStack {
    Text("Lorem ipsum")
    Spacer()
    Text("Lorem ipsum")
}
Run Code Online (Sandbox Code Playgroud)

Ugo*_*ino 8

SwiftUIViewBuilder @functionBuilder

struct HGrid <Content: View>: View {
    init(@ViewBuilder builder: () -> Content) {
        let content = builder()
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

也可以看看

  • @UgoArangino嗨,我不明白如何使用您的示例创建自定义容器作为 HGrid ?如何在每个添加的组件之间添加间隔?您将如何修改在 builder() 中获得的内容? (4认同)