在 UIViewRepresentable 中获取 UIView 的框架或边界

Mar*_*tin 5 ios swift swiftui

在我的ContentView我有一个简单的自定义视图:

var body: some View {
    VStack {
        Text("Hi")
        Circles().frame(width: 200, height: 200)
        Text("Bye")
    }
}
Run Code Online (Sandbox Code Playgroud)

哪里CirclesUIViewRepresentable

func makeUIView(context: Context) -> CircleView  {
    return CircleView()
}
Run Code Online (Sandbox Code Playgroud)

CircleView是 AUIView但我无法找到高度和宽度非零的获取框架或边界。视图以正确的大小显示,但我无法在 UIView 生命周期中的哪个位置完成布局。(此时init高度/宽度仍为 0)

Asp*_*eri 1

至少在UIView.layoutSubviews边界内已经有效(我使用覆盖它来满足布局子层的需要)。

open func layoutSubviews()
Run Code Online (Sandbox Code Playgroud)

您可以重写其他UIView方法来找出它是根据您的需要定义的。