我想使用UIViewRepresentable在SwiftUI中使用自定义的UIView。我希望我的UIView与.frame()中设置的大小相同,这样我就可以像这样使用它:
MyViewRepresentable()
.frame(width: 400, height: 250, alignment: .center)
例如,我可以将帧设置为属性:
struct MyViewRepresentable: UIViewRepresentable {
var frame: CGRect
func makeUIView(context: Context) -> UIView {
let myView = MyView(frame: frame)
return view
}
func updateUIView(_ uiView: UIView, context: Context) {}
}
使用方法:
struct ContentView: View {
var body: some View {
MyViewRepresentable(frame: CGRect(x: 0, y: 0, width: 400, height: 250))
.frame(width: 400, height: 250, alignment: .center)
}
}
这不是一个解决方案,我想知道如何使它正确。
UIViewControllerRepresentable
框架大小的类似问题,并在viewDidLayoutSubviews
中分配框架并使用updateUIViewController
解决了我的问题! - om-ha