在UIViewRepresentable中获取UIView的frame或bounds

6
在我的ContentView中,我有一个简单的自定义视图:
var body: some View {
    VStack {
        Text("Hi")
        Circles().frame(width: 200, height: 200)
        Text("Bye")
    }
}

其中 Circles 是一个 UIViewRepresentable

func makeUIView(context: Context) -> CircleView  {
    return CircleView()
}

CircleView 是一个 UIView,但是我找不到高度和宽度非零的框架或边界。视图以正确的大小显示,但我无法确定在 UIView 生命周期中哪个时刻布局已经完成。(在初始化时,高度/宽度仍为 0)

1个回答

1

至少在UIView.layoutSubviews中,边界已经是有效的(我曾经覆盖它以满足布局子层的需要)。

open func layoutSubviews()

您可以重写其他UIView方法,以了解其在满足您需求时的定义位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接