ViewBuilder 闭包构造视图 View(SwiftUI中文文档手册)

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

表示此视图主体的视图类型。
需要。

实战代码

SwiftUI 代码如何兼容iOS 13 和 iOS 14 (教程含源码)

推荐

基础文章推荐

经典教程推荐

上新

技术源码推荐

推荐文章

CoreData篇

Combine篇

TextField篇

JSON文件篇


一篇文章系列

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值