SwiftUI 中的 CALayer 等价物

CALayer equivalent in SwiftUI

UIViews 已知支持图层,但不确定 SwiftUI 视图。 SwiftUI 中是否有层的概念,可以添加为子层,动画,你可以用 CALayer 做的一切?

通过跳转到 View 的定义检查 SwiftUI 的所有方法后,如下所示:

在该文件中,我可以看到作为开发人员我们可以访问的所有 UIControl 和所有方法都列在那里。在这里,我发现没有像概念这样的层。但是层的所有属性 - 如 cornerRadius、borderWidth、borderColor、shadow 等都已经在那里定义了。所以我认为在 SwiftUI.

中出现这种概念的可能性较小

仍然不确定我的答案。

在 "Building Custom Views with SwiftUI" 演讲中,他们展示了视图和绘图 models/interfaces 本质上已在框架的幕后组合在一起。因此,View 具有类似层的属性,但构建在 View 本身而不是层抽象上。

来源:https://developer.apple.com/videos/play/wwdc2019/237/

import SwiftUI
import AVFoundation

struct DrawingView: UIViewRepresentable {

    private let view = UIView()

    var layer: CALayer? {
        view.layer
    }

    func makeUIView(context: Context) -> UIView {
        view
    }

    func updateUIView(_ uiView: UIView, context: Context) { }
}