swift - 如何在 SwiftUI 中添加自定义容器 View

标签 swift swiftui xcode11 ios13

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

的功能

类似于:

HGrid {
    Text("Lorem ipsum")
    Text("Lorem ipsum")
}

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

HStack {
    Text("Lorem ipsum")
    Spacer()
    Text("Lorem ipsum")
}

最佳答案

SwiftUI 使用 ViewBuilder @functionBuilder

实现了这一点
struct HGrid <Content: View>: View {
    init(@ViewBuilder builder: () -> Content) {
        let content = builder()
        ...
    }
}

另见

关于swift - 如何在 SwiftUI 中添加自定义容器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56531763/

相关文章:

ios - Swift String 到 unsigned char [](CUnsignedChar)

iOS 11 在使用大标题时无法正常滚动到顶部

ios - SwiftUI:有没有办法在点击时只折叠一个按钮而不是全部

ios - 有没有更好的方法来排除 tvOS 的 navigationBarTitle?

swiftui - 将文本字段格式化为 2 位小数而不输入小数(SwiftUI)

ios - 从 xc10 > xc11 迁移 SceneKit 应用程序,我遇到 "xcrun: error: unable to find utility "scntool",不是开发人员工具或在 PATH 中"

crash - 打开项目时Xcode 11崩溃

ios - 有没有办法查看文本字段的值是否等于 Swift 中字典中的值?

ios - Xcode Beta 6 中的 SwiftUI 模式?

初始化期间的 Swift 可选值防止默认初始化程序继承