如何使UIView在SwiftUI中的内容大小正确?

如何使UIView在SwiftUI中的内容大小正确?,swiftui,uiviewrepresentable,geometryreader,Swiftui,Uiviewrepresentable,Geometryreader,我想在我的SwiftUI视图中使用由Yonat Sharon编写的很棒的多段选择器 但是,我并不完全理解UIViewRepresentable视图和我的SwiftUI视图之间的交互。如何使主体视图控制器将其高度缩小到分段控件的大小 这是演示页面的调试器视图-请注意顶部栏周围的蓝色区域: 演示代码并没有深入了解这个问题,它只是对UIViewRepresentable视图的调用。我将其简化为一个示例: struct MultiSegmentPickerX: View { @Sta

我想在我的SwiftUI视图中使用由Yonat Sharon编写的很棒的多段选择器

但是,我并不完全理解UIViewRepresentable视图和我的SwiftUI视图之间的交互。如何使主体视图控制器将其高度缩小到分段控件的大小

这是演示页面的调试器视图-请注意顶部栏周围的蓝色区域:

演示代码并没有深入了解这个问题,它只是对UIViewRepresentable视图的调用。我将其简化为一个示例:

   struct MultiSegmentPickerX: View {

    @State private var selectedSegmentIndexes: IndexSet = []

    var body: some View {
        VStack(alignment: .center) {
            Spacer()
            MultiSegmentPicker(
                selectedSegmentIndexes: $selectedSegmentIndexes,
                items: ["First", "Second", "Third", "Done"]
            )
        }
    }
}

注意,在控件之前有一个带间隔符()的VStack

本示例所需的行为是,带有“第一”、“第二”等的条紧贴屏幕底部。相反,主机控制器保留所有空间

我是否需要使用几何体读取器来解决此问题并缩小高度。或者我必须调整UIViewRepresentable视图中的某些内容吗

任何关于桥接UIKit和SwiftUI的见解,我们都将不胜感激。。。 这是一个容易解决的问题吗

这些并没有解决我的问题:


现在无法测试它,仅凭想法,请尝试以下固定大小

MultiSegmentPicker(
    selectedSegmentIndexes: $selectedSegmentIndexes,
    items: ["First", "Second", "Third", "Done"]
).fixedSize()       // << here !!
多段选择器(
selectedSegmentIndexes:$selectedSegmentIndexes,
项目:[“第一”、“第二”、“第三”、“完成”]

).fixedSize()//对于我来说,如果不修复原始UIKit控件的
intrinsicContentSize
,这将无法工作。我在版本2.3.3中推出了修复程序。