swift - SwiftUI "body"变量是什么类型?

标签 swift swiftui

简单问题:body 变量到底是什么?如果我对 Swift 的解释是正确的,它会被初始化为 View 或其子类之一的对象。然而,在其初始化内部,似乎有一系列构造函数调用(例如 Text() 或 Image()),这些调用未存储在任何变量中或返回。我是来自 Java 的 Swift 新手,在网上找不到太多相关信息。有人可以解释一下吗?

另外,VStack 和 HStack 也是如此——它们是对象的集合吗?

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello SwiftUI!")
        }
    }
}

struct ContentView_Preview: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

最佳答案

View 是一个协议(protocol),而不是一个类。 body 的类型是 some View,它是一个不透明的结果类型,这意味着它返回一些实现 View 的特定具体类型,但是该具体类型类型不会作为 API 的一部分向公众公开。

SwiftUI 使用 Swift 的函数构建器语法,尽管我不确定如果不先从其他地方阅读它,您如何自己弄清楚这一点。

进一步阅读:https://www.swiftbysundell.com/articles/the-swift-51-features-that-power-swiftuis-api/

关于swift - SwiftUI "body"变量是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60085591/

相关文章:

swift - 如何将我的按钮定位到屏幕底部?用户界面

swift - 如何从 XIB 文件加载自定义创建的 View 并添加到 StackView

ios - SwiftUI 按钮在 UIHostingController 中不起作用

swift - 不允许此应用查询方案 XYZ ://

ios - Realm Swift iOS - 无法设置主键

swift - 在 iPad 上使用 SwiftUI NavigationView 在代码中切换侧边栏

animation - SwiftUI:自定义模态动画

swift - 添加新窗口并使其成为 SWIFTUI 中的关键窗口

ios - 使用 uid 从 firebase 下载图像

Swift - 从工作日数组中获取下一个日期