ViewBuilder
一个自定义参数属性,用于从闭包构造视图。
struct ViewBuilder
总览
您通常将其用作产生子视图的闭合参数的参数属性,从而允许这些闭合提供多个子视图。例如,以下函数接受通过视图构建器生成一个或多个视图的闭包。
func contextMenu<MenuItems : View>(
@ViewBuilder menuItems: () -> MenuItems
) -> some View
此功能的客户端可以使用多语句闭包来提供多个子视图,如以下示例所示:
myView.contextMenu {
Text("Cut")
Text("Copy")
Text("Paste")
if isSymbol {
Text("Jump to Definition")
}
}
主题
建筑模块
1、static func buildBlock() -> EmptyView
从不包含任何语句的块构建一个空视图。
2、static func buildBlock<Content>(Content) -> Content
将未经修改的单个视图传递为子视图。
3、static func buildBlock<C0, C1>(C0, C1) -> TupleView<(C0, C1)>
4、static func buildBlock<C0, C1, C2>(C0, C1, C2) -> TupleView<(C0, C1, C2)>
5、static func buildBlock<C0, C1, C2, C3>(C0, C1, C2, C3) -> TupleView<(C0, C1, C2, C3)>
6、static func buildBlock<C0, C1, C2, C3, C4>(C0, C1, C2, C3, C4) -> TupleView<(C0, C1, C2, C3, C4)>
7、static func buildBlock<C0, C1, C2, C3, C4, C5>(C0, C1, C2, C3, C4, C5) -> TupleView<(C0, C1, C2, C3, C4, C5)>
8、static func buildBlock<C0, C1, C2, C3, C4, C5, C6>(C0, C1, C2, C3, C4, C5, C6) -> TupleView<(C0, C1, C2, C3, C4, C5, C6)>
9、static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7>(C0, C1, C2, C3, C4, C5, C6, C7) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7)>
10、static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8>(C0, C1, C2, C3, C4, C5, C6, C7, C8) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8)>
11、static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)>
12、static func buildEither<TrueContent, FalseContent>(first: TrueContent) -> _ConditionalContent<TrueContent, FalseContent>
为多语句闭包中的“ if”语句提供支持,从而为“ then”分支生成ConditionalContent。
13、static func buildEither<TrueContent, FalseContent>(second: FalseContent) -> _ConditionalContent<TrueContent, FalseContent>
为多语句闭包中的“ if-else”语句提供支持,从而为“ else”分支生成ConditionalContent。
14、static func buildIf<Content>(Content?) -> Content?
提供对多语句闭包中“ if”语句的支持,从而生成一个可选视图,该视图仅在条件评估为时可见true。
实施自定义视图
1、var body: Self.Body
视图的内容和行为。
需要。 提供了默认实现。
2、associatedtype Body : View
表示此视图主体的视图类型。
需要。