ios - 使用{…in}的Swift闭包语法

标签 ios swift syntax swiftui

Apple SwiftUI Tutorial: Drawing Paths and Shapes上,显示以下语法:

struct Badge: View {
    var body: some View {
        GeometryReader { geometry in
            Path { path in
            ...
            }
            .fill(Color.black)
        }
    }
}

我没有在Swift docs on structs中看到语法,并且感到非常困惑。

另外,怎么可能知道geometryGeometryReader语句中,无论意味着什么?

最佳答案

这是尾随闭包的简化语法,因此

Path { path in
...
}

与...相同
Path( { (path) in
...
})

Path构造函数
/// Initializes to an empty path then calls `callback` to add
/// the initial elements.
public init(_ callback: (inout Path) -> ())

顺便说一句,此语法已在SwiftUI中广泛使用,因此您会在VStack { .. }GeometryReader { g in ... }ScrollView { ... }和SwfitUI框架的几乎所有其他UI元素中看到相同的语法。

关于ios - 使用{…in}的Swift闭包语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62341839/

相关文章:

ios - CG 中的纹理线

ios - Cloudbees Jenkins shell 访问被拒绝 Facebook-iOS-SDK

ios - xib 的 UIView 模糊

swift - 在 iOS 中使用 Twilio 进行屏幕共享

python - 限制 python 3 中的无效输入

java - 插入赋值运算符表达式以完成eclipse错误中的表达式

javascript - 防止 body 元素滚动反弹,但在 iOS 中为子元素保留它

ios - 我的网络模拟功能应该包括什么?

ios - 如果文本字段为空,如何禁用按钮?

python - 为什么 python 在某些事情上使用两个下划线?