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

ViewBuilder

一个自定义参数属性,用于从闭包构造视图。

struct ViewBuilder

总览

您通常将其用作产生子视图的闭合参数的参数属性,从而允许这些闭合提供多个子视图。例如,以下函数接受通过视图构建器生成一个或多个视图的闭包。

func contextMenu(
    @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

将未经修改的单个视图传递为子视图。

3、static func buildBlock(C0, C1) -> TupleView<(C0, C1)>

4、static func buildBlock(C0, C1, C2) -> TupleView<(C0, C1, C2)>

5、static func buildBlock(C0, C1, C2, C3) -> TupleView<(C0, C1, C2, C3)>

6、static func buildBlock(C0, C1, C2, C3, C4) -> TupleView<(C0, C1, C2, C3, C4)>

7、static func buildBlock(C0, C1, C2, C3, C4, C5) -> TupleView<(C0, C1, C2, C3, C4, C5)>

8、static func buildBlock(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) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7)>

10、static func buildBlock(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) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)>

12、static func buildEither(first: TrueContent) -> _ConditionalContent

为多语句闭包中的“ if”语句提供支持,从而为“ then”分支生成ConditionalContent。

13、static func buildEither(second: FalseContent) -> _ConditionalContent

为多语句闭包中的“ if-else”语句提供支持,从而为“ else”分支生成ConditionalContent。

14、static func buildIf(Content?) -> Content?

提供对多语句闭包中“ if”语句的支持,从而生成一个可选视图,该视图仅在条件评估为时可见true。


实施自定义视图

1、var body: Self.Body

视图的内容和行为。
需要。 提供了默认实现。

2、associatedtype Body : View

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

实战代码

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

推荐

基础文章推荐

  • 《SwiftUI是什么,听听大牛们如何说》

经典教程推荐

  • 更新近百篇SwiftUI教程《SwiftUI2020教程》
  • 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》

上新

  • 《WWDC2020专栏》
  • 《SwiftUI WWDC2020 新增组件列表》

技术源码推荐

推荐文章

CoreData篇

  • SwiftUI数据存储之做个笔记App 新增与查询(CoreData)
  • SwiftUI进阶之存储用户状态实现登录与登出
  • SwiftUI 数据之List显示Sqlite数据库内容(2020年教程)

Combine篇

  • 一篇文章学懂弄通SwiftUI与Combine(含轮播动画App源码)

TextField篇

  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • 《SwiftUI实战之TextField风格自定义与formatters》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
  • 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》

JSON文件篇

  • SwiftUI JSON文件下载、存储、解析和展示(代码大全)

一篇文章系列

  • SwiftUI一篇文章全面掌握List(教程和源码)
  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
  • SwiftUI一篇文章全面掌握Form(教程和源码)
  • SwiftUI Color 颜色一篇文章全解决

技术交流

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

  • 请关注我的专栏icloudend, SwiftUI教程与源码
    https://www.jianshu.com/c/7b3e3b671970

你可能感兴趣的:(ViewBuilder 闭包构造视图 View(SwiftUI中文文档手册))